#./varmacro.tex#

=2

=t =eplain

=1

1 4in 10in -.7in

<#14#><#14#> 2 -.57in 152 3.2in 7.95in -.47in -.85in 3.2in 7.55in 0= 2= =.8 =.8 =.8 157

=<#21#>height6.5pt depth2.5pt width0pt<#21#>

2 =b <#22#>#tex2html_accent_inline5188#<#22#> <#23#><#23#> 3 =c <#26#>#tex2html_accent_inline5189#<#26#> <#27#><#27#> <#30#>You must set equal to 1, 2, or 3.<#30#> <#31#>Illegal number of columns per page<#31#>

=.46in =<#2248#>171 c <#1942#> to <#33#><#33#>


<#1942#> <#2279#> <#2280#>
=3by 3<#2281#><#2281#> <#2282#> <#2282#>
<#2280#><#2279#> by 1 ac
<#1943#> to <#36#> <#36#>
<#1943#> 175 to -<#37#><#37#> by 1
<#1944#> to <#39#><#39#>
<#1944#> by 1 <#2248#>

_=<#2285#>#tex2html_accent_inline5190#<#2285#> &sstarf#star;=<#2286#>#tex2html_accent_inline5191#<#2286#> ||=<#2287#>#tex2html_accent_inline5192#<#2287#>


=`
{=`{ }=`}

<#1953#>/<#56#>#tex2html_accent_inline5193#<#56#> <#1953#> =

=0.44

=.10

=0em

=<#2288#>

<#2288#>

`@ =

-1pt 201

@dim 202 @indent @siz @box

`@ = #./varmacro.tex#

=0pt 221

<#2291#>=

Tos--GNU C Library Functions
<#2291#>

This reference card describes the available library functions of GNU C on the Atari ST and is currently based on the library from Jwahar~R. Bammi at patchlevel 83. For the most part the functions are alphabetically sorted by function name.

Some of the mentioned functions are only available, when MiNT, the TOS multitasking extension from Eric~R. Smith is running, or if you have a TT. The earlier are marked with ``(MiNT)'', the latter with ``(TT)''.



Additionally, this reference card is postcard-ware. If you find it useful, send a postcard to this address: Frank Ridderbusch, Sander Str.~17, W-4790~Paderborn, Germany.

<#2293#>Standard I/O<#2293#>

<#2294#>#tex2html_accent_inline5194#<#2294#><#2296#>section<#2296#><#2297#>Standard I/O<#2297#><#2298#><#2298#>

#include stdio.h;SPMgt;

<#124#>=The following aliases for some of the below functions are defined.

<#124#>

= to <#1971#>#=10pt plus 1 fil;SPMamp;# getc;SPMamp;fgetc ungetc;SPMamp;fungetc putc;SPMamp;fputc getchar();SPMamp;fgetc(stdin) ungetchar(c);SPMamp;fungetc((c),stdin) putchar(c);SPMamp;fputc((c),stdout) <#1971#>=0em

func@star<#137#>void clearerr(FILE &sstarf#star;fp);<#137#> =2000 to <#2299#> <#2300#>by -Clear error and EOF status of stream <#2301#>#tex2html_accent_inline5195#<#2301#>. (Macro)<#2300#><#2299#>

func@star<#139#>char &sstarf#star;ctermid(char &sstarf#star;name);<#139#> =2000 to <#2302#> <#2303#>by -<#2303#><#2302#>

func@star<#141#>int fclose(FILE &sstarf#star;fp);<#141#> =2000 to <#2304#> <#2305#>by -Close the stream <#2306#>#tex2html_accent_inline5196#<#2306#>.<#2305#><#2304#>

func@star<#143#>FILE &sstarf#star;fdopen(int fd, const~char &sstarf#star;mode);<#143#> =2000 to <#2307#> <#2308#>by -Connect a file pointer to the file descriptor <#2309#>#tex2html_accent_inline5197#<#2309#> with mode <#2310#>#tex2html_accent_inline5198#<#2310#>.<#2308#><#2307#>

func@star<#146#>int feof(FILE &sstarf#star;fp);<#146#> =2000 to <#2311#> <#2312#>by -Test EOF status of stream <#2313#>#tex2html_accent_inline5199#<#2313#>. (Macro)<#2312#><#2311#>

func@star<#148#>int ferror(FILE &sstarf#star;fp);<#148#> =2000 to <#2314#> <#2315#>by -Test error status of stream <#2316#>#tex2html_accent_inline5200#<#2316#>. (Macro)<#2315#><#2314#>

func@star<#150#>int fflush(FILE &sstarf#star;fp);<#150#> =2000 to <#2317#> <#2318#>by -Write data from internal buffer of stream <#2319#>#tex2html_accent_inline5201#<#2319#> to the file.<#2318#><#2317#>

func@star<#152#>int fgetc(FILE &sstarf#star;fp);<#152#> =2000 to <#2320#> <#2321#>by -Get a character from stream <#2322#>#tex2html_accent_inline5202#<#2322#>.<#2321#><#2320#>

func@star<#154#>int fgetpos(FILE &sstarf#star;fp, fpos_t &sstarf#star;ptr);<#154#> =2000 to <#2323#> <#2324#>by -Put the current position of the file pointer of stream <#2325#>#tex2html_accent_inline5203#<#2325#> into the address <#2326#>#tex2html_accent_inline5204#<#2326#>.<#2324#><#2323#>

func@star<#157#>char &sstarf#star;fgets(char &sstarf#star;buf, int max, FILE &sstarf#star;fp);<#157#> =2000 to <#2327#> <#2328#>by -Get a string including the NL character from stream <#2329#>#tex2html_accent_inline5205#<#2329#> with <#2330#>#tex2html_accent_inline5206#<#2330#> byte into <#2331#>#tex2html_accent_inline5207#<#2331#>.<#2328#><#2327#>

func@star<#161#>int fileno(FILE &sstarf#star;fp);<#161#> =2000 to <#2332#> <#2333#>by -Get file descriptor of stream <#2334#>#tex2html_accent_inline5208#<#2334#>. (Macro)<#2333#><#2332#>

func@star<#163#>FILE &sstarf#star;fopen(const~char &sstarf#star;fname, const~char &sstarf#star;mode);<#163#> =2000 to <#2335#> <#2336#>by -Open file <#2337#>#tex2html_accent_inline5209#<#2337#> with mode <#2338#>#tex2html_accent_inline5210#<#2338#> for stream I/O.<#2336#><#2335#>

func@star<#166#>int fputc(int c, FILE &sstarf#star;fp);<#166#> =2000 to <#2339#> <#2340#>by -Write a character <#2341#>#tex2html_accent_inline5211#<#2341#> into stream <#2342#>#tex2html_accent_inline5212#<#2342#>.<#2340#><#2339#>

func@star<#169#>int fputs(const~char &sstarf#star;buf, FILE &sstarf#star;fp);<#169#> =2000 to <#2343#> <#2344#>by -Write the string in <#2345#>#tex2html_accent_inline5213#<#2345#> into stream <#2346#>#tex2html_accent_inline5214#<#2346#>.<#2344#><#2343#>

func@star<#172#>size_t fread(void &sstarf#star;buf, size_t sz, size_t no, FILE &sstarf#star;fp);<#172#> =2000 to <#2347#> <#2348#>by -Read <#2349#>#tex2html_accent_inline5215#<#2349#> items of size <#2350#>#tex2html_accent_inline5216#<#2350#> from stream <#2351#>#tex2html_accent_inline5217#<#2351#> into <#2352#>#tex2html_accent_inline5218#<#2352#>.<#2348#><#2347#>

func@star<#177#>FILE &sstarf#star;freopen(const~char &sstarf#star;fname, const~char &sstarf#star;mode, FILE &sstarf#star;fp);<#177#> =2000 to <#2353#> <#2354#>by -Reopen <#2355#>#tex2html_accent_inline5219#<#2355#> with file <#2356#>#tex2html_accent_inline5220#<#2356#> and mode <#2357#>#tex2html_accent_inline5221#<#2357#>.<#2354#><#2353#>

func@star<#181#>int fseek(FILE &sstarf#star;fp, long pos, int whence);<#181#> =2000 to <#2358#> <#2359#>by -Move the the file pointer from stream <#2360#>#tex2html_accent_inline5222#<#2360#> to position <#2361#>#tex2html_accent_inline5223#<#2361#> relativ to <#2362#>#tex2html_accent_inline5224#<#2362#>.<#2359#><#2358#>

func@star<#185#>int fsetpos(FILE &sstarf#star;fp, fpos_t &sstarf#star;ptr);<#185#> =2000 to <#2363#> <#2364#>by -Set the position of the file pointer of stream <#2365#>#tex2html_accent_inline5225#<#2365#> to the value at address <#2366#>#tex2html_accent_inline5226#<#2366#>.<#2364#><#2363#>

func@star<#188#>long ftell(FILE &sstarf#star;fp);<#188#> =2000 to <#2367#> <#2368#>by -Get the current position of the file pointer from stream <#2369#>#tex2html_accent_inline5227#<#2369#>.<#2368#><#2367#>

func@star<#190#>int fungetc(int c, FILE &sstarf#star;fp);<#190#> =2000 to <#2370#> <#2371#>by -Push the character <#2372#>#tex2html_accent_inline5228#<#2372#> back onto stream <#2373#>#tex2html_accent_inline5229#<#2373#>.<#2371#><#2370#>

func@star<#193#>size_t fwrite(const~void &sstarf#star;buf, size_t size, size_t no , FILE &sstarf#star;fp);<#193#> =2000 to <#2374#> <#2375#>by -Write <#2376#>#tex2html_accent_inline5230#<#2376#> items of size <#2377#>#tex2html_accent_inline5231#<#2377#> from <#2378#>#tex2html_accent_inline5232#<#2378#> into stream <#2379#>#tex2html_accent_inline5233#<#2379#>.<#2375#><#2374#>

func@star<#198#>long getl(FILE &sstarf#star;fp);<#198#> =2000 to <#2380#> <#2381#>by -Read a long value from stream <#2382#>#tex2html_accent_inline5234#<#2382#>.<#2381#><#2380#>

func@star<#200#>char &sstarf#star;gets(char &sstarf#star;buf);<#200#> =2000 to <#2383#> <#2384#>by -Get a string from stdin;SPMgt; into <#2385#>#tex2html_accent_inline5235#<#2385#>. The NL character is discarded.<#2384#><#2383#>

func@star<#202#>short getw(FILE &sstarf#star;fp);<#202#> =2000 to <#2386#> <#2387#>by -Read a short value from stream <#2388#>#tex2html_accent_inline5236#<#2388#>.<#2387#><#2386#>

func@star<#204#>int pclose(FILE &sstarf#star;fp);<#204#> =2000 to <#2389#> <#2390#>by -Close the stream created by <#2391#>#tex2html_accent_inline5237#<#2391#>.<#2390#><#2389#>

func@star<#206#>void perror(const~char &sstarf#star;str);<#206#> =2000 to <#2392#> <#2393#>by -Display error message starting with <#2394#>#tex2html_accent_inline5238#<#2394#> depending on <#2395#>#tex2html_accent_inline5239#<#2395#>.<#2393#><#2392#>

func@star<#209#>FILE &sstarf#star;popen(const~char &sstarf#star;command, const~char &sstarf#star;mode);<#209#> =2000 to <#2396#> <#2397#>by -Open a pipe with <#2398#>#tex2html_accent_inline5240#<#2398#> to <#2399#>#tex2html_accent_inline5241#<#2399#>. (Faked by temporary files)<#2397#><#2396#>

func@star<#212#>int printf(const~char &sstarf#star;fmt, …);<#212#> func@star<#213#>int fprintf(FILE &sstarf#star;fp, const~char &sstarf#star;fmt, …);<#213#> func@star<#214#>int sprintf(char &sstarf#star;buf, const~char &sstarf#star;fmt, …);<#214#> func@star<#215#>int vprintf(const~char &sstarf#star;fmt, char &sstarf#star;);<#215#> func@star<#216#>int vfprintf(FILE &sstarf#star;fp, const~char &sstarf#star;fmt, char &sstarf#star;);<#216#> func@star<#217#>int vsprintf(char &sstarf#star;buf, const~char &sstarf#star;fmt, char &sstarf#star;);<#217#> =2000 to <#2400#> <#2401#>by -Formated output to either stdout;SPMgt;, <#2402#>#tex2html_accent_inline5245#<#2402#> or <#2403#>#tex2html_accent_inline5246#<#2403#> with fixed or variable number of arguments.<#2401#><#2400#>

<#1999#>=The following table lists the identifying letters of the <#220#>#tex2html_accent_inline5247#<#220#> string.

<#1999#>

= #1##2##3<#2405#>##1;SPMamp;;SPMamp;##2;SPMamp;;SPMamp;##3<#2405#> ;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp;##;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMamp;##;SPMamp; ;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp;##;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMamp;##;SPMamp;;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp;## ;SPMamp;scanf;SPMamp;;SPMamp;printf;SPMamp;;SPMamp;Meaning;SPMamp; <#224#>


<#224#> ;SPMamp;d;SPMamp;;SPMamp;d,i;SPMamp;;SPMamp;Decimal number;SPMamp; ;SPMamp;o;SPMamp;;SPMamp;o;SPMamp;;SPMamp;Octal number;SPMamp; ;SPMamp;x;SPMamp;;SPMamp;x,X;SPMamp;;SPMamp;Hexadecimal number;SPMamp; ;SPMamp;u;SPMamp;;SPMamp;u;SPMamp;;SPMamp;Unsigned decimal n.;SPMamp; ;SPMamp;b;SPMamp;;SPMamp;;SPMamp;;SPMamp;Unsigned binary int.;SPMamp; ;SPMamp;i;SPMamp;;SPMamp;;SPMamp;;SPMamp;Any base num.;SPMamp; ;SPMamp;D;SPMamp;;SPMamp;D;SPMamp;;SPMamp;Long Decimal number;SPMamp; ;SPMamp;O;SPMamp;;SPMamp;O;SPMamp;;SPMamp;Long Octal number;SPMamp; ;SPMamp;U;SPMamp;;SPMamp;U;SPMamp;;SPMamp;Unsigned long decimal;SPMamp; ;SPMamp;X;SPMamp;;SPMamp;;SPMamp;;SPMamp;Long Hexadecimal;SPMamp; ;SPMamp;ld,lo,lx;SPMamp;;SPMamp;ld,li,lo,lx,lX;SPMamp;;SPMamp;Long … number;SPMamp; ;SPMamp;lb;SPMamp;;SPMamp;;SPMamp;;SPMamp;Unsigned binary long;SPMamp; ;SPMamp;li;SPMamp;;SPMamp;;SPMamp;;SPMamp;Any base num. long;SPMamp; ;SPMamp;hd,ho,hx;SPMamp;;SPMamp;d,o,x,X;SPMamp;;SPMamp;Short … number;SPMamp; ;SPMamp;c;SPMamp;;SPMamp;c;SPMamp;;SPMamp;Character;SPMamp; ;SPMamp;s;SPMamp;;SPMamp;s;SPMamp;;SPMamp;String;SPMamp; ;SPMamp;;SPMamp;;SPMamp;p;SPMamp;;SPMamp;Pointer;SPMamp; ;SPMamp;[…];SPMamp;;SPMamp;;SPMamp;;SPMamp;Str. consist. of char.;SPMamp; ;SPMamp;e,f,g;SPMamp;;SPMamp;f;SPMamp;;SPMamp;Fixed-point number;SPMamp; ;SPMamp;e,f,g;SPMamp;;SPMamp;e,E;SPMamp;;SPMamp;Floating-point number;SPMamp; ;SPMamp;le,lf,lg;SPMamp;;SPMamp;;SPMamp;;SPMamp;Double prec. … n.;SPMamp; ;SPMamp;E,F,G;SPMamp;;SPMamp;;SPMamp;;SPMamp;Double prec. … n.;SPMamp; ;SPMamp;Le,Lf,Lg;SPMamp;;SPMamp;Le,LE,Lf;SPMamp;;SPMamp;Long Double … n.;SPMamp; ;SPMamp;;SPMamp;;SPMamp;g,G,Lg,LG;SPMamp;;SPMamp;e/E or f - shortest used;SPMamp; =0em

func@star<#297#>long putl(long c, FILE &sstarf#star;fp);<#297#> =2000 to <#2407#> <#2408#>by -Output the long value <#2409#>#tex2html_accent_inline5254#<#2409#> into the stream <#2410#>#tex2html_accent_inline5255#<#2410#>.<#2408#><#2407#>

func@star<#300#>int puts(const~char &sstarf#star;buf);<#300#> =2000 to <#2411#> <#2412#>by -Write the string in <#2413#>#tex2html_accent_inline5256#<#2413#> to stdout;SPMgt; appending a NL character.<#2412#><#2411#>

func@star<#302#>short putw(short c, FILE &sstarf#star;fp);<#302#> =2000 to <#2414#> <#2415#>by -Output the short value <#2416#>#tex2html_accent_inline5257#<#2416#> into the stream <#2417#>#tex2html_accent_inline5258#<#2417#>.<#2415#><#2414#>

func@star<#305#>int remove(const~char &sstarf#star;fname);<#305#> =2000 to <#2418#> <#2419#>by -Remove file with name <#2420#>#tex2html_accent_inline5259#<#2420#>.<#2419#><#2418#>

func@star<#307#>int rename(const~char &sstarf#star;old, const~char &sstarf#star;new);<#307#> =2000 to <#2421#> <#2422#>by -Change name of file from <#2423#>#tex2html_accent_inline5260#<#2423#> to <#2424#>#tex2html_accent_inline5261#<#2424#>.<#2422#><#2421#>

func@star<#310#>void rewind(FILE &sstarf#star;fp);<#310#> =2000 to <#2425#> <#2426#>by -Reset the filepointer from stream <#2427#>#tex2html_accent_inline5262#<#2427#> to position 0.<#2426#><#2425#>

func@star<#312#>int scanf(const~char &sstarf#star;fmt, …);<#312#> func@star<#313#>int fscanf(FILE &sstarf#star;fp, const~char &sstarf#star;fmt, …);<#313#> func@star<#314#>int sscanf(const~char &sstarf#star;buf, const~char &sstarf#star;fmt, …);<#314#> =2000 to <#2428#> <#2429#>by -Formated input from either stdin;SPMgt;, <#2430#>#tex2html_accent_inline5266#<#2430#> or <#2431#>#tex2html_accent_inline5267#<#2431#>. (For a description of the letters in the <#2432#>#tex2html_accent_inline5268#<#2432#> string see <#2433#>#tex2html_accent_inline5269#<#2433#>.)<#2429#><#2428#>

func@star<#319#>void setbuf(FILE &sstarf#star;fp, char &sstarf#star;buf);<#319#> =2000 to <#2434#> <#2435#>by -Set buffer of stream <#2436#>#tex2html_accent_inline5270#<#2436#> to <#2437#>#tex2html_accent_inline5271#<#2437#>.<#2435#><#2434#>

The following functions are defined as macros.

func@star<#322#>int setvbuf(FILE &sstarf#star;fp, char &sstarf#star;buf, int mode, size_t sz);<#322#> =2000 to <#2438#> <#2439#>by -Set buffer of stream <#2440#>#tex2html_accent_inline5272#<#2440#> to <#2441#>#tex2html_accent_inline5273#<#2441#> with size <#2442#>#tex2html_accent_inline5274#<#2442#> and mode <#2443#>#tex2html_accent_inline5275#<#2443#>.<#2439#><#2438#>

func@star<#327#>FILE &sstarf#star;tmpfile(void);<#327#> =2000 to <#2444#> <#2445#>by -Create a temporary file. File is deleted on normal termination.<#2445#><#2444#>

func@star<#329#>char &sstarf#star;tmpnam(char &sstarf#star;buf);<#329#> =2000 to <#2446#> <#2447#>by -Create a string for a temporary filename.<#2447#><#2446#>

func@star<#331#>void _binmode(int bool);<#331#> =2000 to <#2448#> <#2449#>by -Set default open mode to binary (bool = true) or text.<#2449#><#2448#>

<#2450#>I/O Control<#2450#>

<#2451#>#tex2html_accent_inline5276#<#2451#><#2453#>section<#2453#><#2454#>I/O Control<#2454#><#2455#><#2455#>

#include ioctl.h;SPMgt;

func@star<#334#>int ioctl(int fd, int cmd, void &sstarf#star;arg);<#334#> =2000 to <#2456#> <#2457#>by -Set or inquire i/o dependend parameter.<#2457#><#2456#>

func@star<#336#>int stty(int fd, struct sgttyb &sstarf#star;_tty);<#336#> func@star<#337#>int gtty(int fd, struct sgttyb &sstarf#star;_tty);<#337#> =2000 to <#2458#> <#2459#>by -Set or inquire i/o parameters for descriptor <#2460#>#tex2html_accent_inline5277#<#2460#>.<#2459#><#2458#>


#include fcntl.h;SPMgt;

func@star<#339#>int fcntl(int fd, int cmd, …);<#339#> =2000 to <#2461#> <#2462#>by -Set or inquire file i/o dependend parameter (MiNT).<#2462#><#2461#>

<#2463#>Memory Management<#2463#>

<#2464#>#tex2html_accent_inline5279#<#2464#><#2466#>section<#2466#><#2467#>Memory Management<#2467#><#2468#><#2468#>

#include stdlib.h;SPMgt;

func@star<#342#>void &sstarf#star;calloc(size_t no, size_t sz);<#342#> =2000 to <#2469#> <#2470#>by -Allocate and initialize memory for <#2471#>#tex2html_accent_inline5280#<#2471#> items of size <#2472#>#tex2html_accent_inline5281#<#2472#>.<#2470#><#2469#>

func@star<#345#>void &sstarf#star;malloc(size_t sz);<#345#> =2000 to <#2473#> <#2474#>by -Allocate <#2475#>#tex2html_accent_inline5282#<#2475#> bytes of memory.<#2474#><#2473#>

func@star<#347#>void &sstarf#star;realloc(void &sstarf#star;ptr, size_t sz);<#347#> =2000 to <#2476#> <#2477#>by -Resize memory pointed to by <#2478#>#tex2html_accent_inline5283#<#2478#> to size <#2479#>#tex2html_accent_inline5284#<#2479#>.<#2477#><#2476#>

func@star<#350#>void free(void &sstarf#star;ptr);<#350#> =2000 to <#2480#> <#2481#>by -Free memory obtained by <#2482#>#tex2html_accent_inline5285#<#2482#>, <#2483#>#tex2html_accent_inline5286#<#2483#> or <#2484#>#tex2html_accent_inline5287#<#2484#>.<#2481#><#2480#>

func@star<#354#>void &sstarf#star;alloca(size_t sz);<#354#> =2000 to <#2485#> <#2486#>by -Allocate <#2487#>#tex2html_accent_inline5288#<#2487#> bytes from the current function stack.<#2486#><#2485#>

func@star<#356#>void _malloczero(int bool);<#356#> =2000 to <#2488#> <#2489#>by -Zero allocated memory blocks. Default = = false.<#2489#><#2488#>

func@star<#358#>void _mallocChunkSize(size_t Siz);<#358#> =2000 to <#2490#> <#2491#>by -Get memory from OS in atleast <#2492#>#tex2html_accent_inline5290#<#2492#> sized blocks. Default = = 4K<#2491#><#2490#>


#include memory.h;SPMgt;

func@star<#360#>void &sstarf#star;_calloc(unsigned~long no, unsigned~long sz);<#360#> func@star<#361#>void &sstarf#star;_malloc(unsigned~long sz);<#361#> func@star<#362#>void &sstarf#star;_realloc(void &sstarf#star;ptr, unsigned~long sz);<#362#> =2000 to <#2493#> <#2494#>by -Apart from the above functions, these three functions are additionally declared in memory.h and take <#2495#>#tex2html_accent_inline5292#<#2495#> arguments.<#2494#><#2493#>

<#2496#>Character Classification and Conversion<#2496#>

<#2497#>#tex2html_accent_inline5293#<#2497#><#2499#>section<#2499#><#2500#>Character Classification and Conversion<#2500#><#2501#><#2501#>

The following functions return ≠ 0, if character <#365#>#tex2html_accent_inline5295#<#365#> belongs to the specified character set; 0 otherwise.

#include ctype.h;SPMgt;

<#2017#><#366#>#tex2html_accent_inline5296#<#366#>(<#367#>#tex2html_accent_inline5297#<#367#>);SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMamp;# function;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMamp;set<#368#><#368#> isalnum;SPMamp;Letter or Digit isalpha;SPMamp;Letter isascii;SPMamp;ASCII character (Codes: 0…0177) iscntrl;SPMamp;Control character (Codes: 0…037, 0177) isdigit;SPMamp;Digit isgraph;SPMamp;Printable character except space islower;SPMamp;Lowercase letter isprint;SPMamp;Printable character ispunct;SPMamp;Punctuation char. (not letter, digit or control) isspace;SPMamp;Space, Tab, CR, NL, VT, FF or BS isupper;SPMamp;Uppercase letter isxdigit;SPMamp;Hexadecimal digit iswhite;SPMamp;same as ispace() isodigit;SPMamp;Octal digit iscymf;SPMamp;Character starting a C identifier iscym;SPMamp;Characters continuing a C identifier <#2017#>

Character conversion functions

<#2018#><#401#>#tex2html_accent_inline5300#<#401#>(<#402#>#tex2html_accent_inline5301#<#402#>);SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMamp;# function;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMamp;Meaning<#403#><#403#> toupper;SPMamp;Convert to uppercase letter _toupper;SPMamp;Convert to uppercase letter (macro) tolower;SPMamp;Convert to lowercase letter _tolower;SPMamp;Convert to lowercase letter (macro) toint;SPMamp;Convert digit to integer <#2018#>

<#2502#>String Handling<#2502#>

<#2503#>#tex2html_accent_inline5302#<#2503#><#2505#>section<#2505#><#2506#>String Handling<#2506#><#2507#><#2507#>

#include string.h;SPMgt;

func@star<#415#>int bcmp(const~void &sstarf#star;ptr1, const~void &sstarf#star;ptr2, size_t no);<#415#> =2000 to <#2508#> <#2509#>by -Compare <#2510#>#tex2html_accent_inline5303#<#2510#> of bytes at position <#2511#>#tex2html_accent_inline5304#<#2511#> with <#2512#>#tex2html_accent_inline5305#<#2512#>.<#2509#><#2508#>

func@star<#419#>void bcopy(const~void &sstarf#star;src, void &sstarf#star;dst, size_t len);<#419#> =2000 to <#2513#> <#2514#>by -Copy <#2515#>#tex2html_accent_inline5306#<#2515#> bytes from position <#2516#>#tex2html_accent_inline5307#<#2516#> to <#2517#>#tex2html_accent_inline5308#<#2517#>.<#2514#><#2513#>

func@star<#423#>void bzero(void &sstarf#star;dst, size_t len);<#423#> =2000 to <#2518#> <#2519#>by -Set <#2520#>#tex2html_accent_inline5309#<#2520#> bytes at position <#2521#>#tex2html_accent_inline5310#<#2521#> to 0.<#2519#><#2518#>

func@star<#426#>char &sstarf#star;index(const~char &sstarf#star;str, int charw);<#426#> func@star<#427#>char &sstarf#star;rindex(const~char &sstarf#star;str, int charw);<#427#> =2000 to <#2522#> <#2523#>by -Same as <#2524#>#tex2html_accent_inline5311#<#2524#>() (<#2525#>#tex2html_accent_inline5312#<#2525#>()).<#2523#><#2522#>

func@star<#430#>void &sstarf#star;memccpy(void &sstarf#star;dst, const~void &sstarf#star;src, int ucharstop, size_t no);<#430#> =2000 to <#2526#> <#2527#>by -Copy characters from <#2528#>#tex2html_accent_inline5313#<#2528#> to <#2529#>#tex2html_accent_inline5314#<#2529#> until character <#2530#>#tex2html_accent_inline5315#<#2530#>, but copy at most <#2531#>#tex2html_accent_inline5316#<#2531#> bytes.<#2527#><#2526#>

func@star<#435#>void &sstarf#star;memchr(const~void &sstarf#star;ptr, int ucharwanted, size_t no);<#435#> =2000 to <#2532#> <#2533#>by -Find character <#2534#>#tex2html_accent_inline5317#<#2534#> in area at <#2535#>#tex2html_accent_inline5318#<#2535#>, but compare at most <#2536#>#tex2html_accent_inline5319#<#2536#> character.<#2533#><#2532#>

func@star<#439#>int memcmp(const~void &sstarf#star;ptr1, const~void &sstarf#star;ptr2, size_t no);<#439#> =2000 to <#2537#> <#2538#>by -Compare <#2539#>#tex2html_accent_inline5320#<#2539#> bytes from memory area at <#2540#>#tex2html_accent_inline5321#<#2540#> with area at <#2541#>#tex2html_accent_inline5322#<#2541#>.<#2538#><#2537#>

func@star<#443#>void &sstarf#star;memcpy(void &sstarf#star;dst, const~void &sstarf#star;src, size_t no);<#443#> =2000 to <#2542#> <#2543#>by -Copy <#2544#>#tex2html_accent_inline5323#<#2544#> of bytes from area at <#2545#>#tex2html_accent_inline5324#<#2545#> to <#2546#>#tex2html_accent_inline5325#<#2546#>.<#2543#><#2542#>

func@star<#447#>void &sstarf#star;memset(void &sstarf#star;ptr, int ucharfill, size_t no);<#447#> =2000 to <#2547#> <#2548#>by -Set <#2549#>#tex2html_accent_inline5326#<#2549#> of bytes at position <#2550#>#tex2html_accent_inline5327#<#2550#> to character <#2551#>#tex2html_accent_inline5328#<#2551#>.<#2548#><#2547#>

func@star<#451#>char &sstarf#star;strcat(char &sstarf#star;dst, const~char &sstarf#star;src);<#451#> func@star<#452#>char &sstarf#star;strncat(char &sstarf#star;dst, const~char &sstarf#star;src, size_t no);<#452#> =2000 to <#2552#> <#2553#>by -Concatenate the string at <#2554#>#tex2html_accent_inline5329#<#2554#> to the string at <#2555#>#tex2html_accent_inline5330#<#2555#>. <#2556#>#tex2html_accent_inline5331#<#2556#>() concatenates at most <#2557#>#tex2html_accent_inline5332#<#2557#> characters.<#2553#><#2552#>

func@star<#457#>char &sstarf#star;strchr(const~char &sstarf#star;str, int charw);<#457#> func@star<#458#>char &sstarf#star;strrchr(const~char &sstarf#star;str, int charw);<#458#> =2000 to <#2558#> <#2559#>by -Find first (last) occurence of character <#2560#>#tex2html_accent_inline5333#<#2560#> in string <#2561#>#tex2html_accent_inline5334#<#2561#>.<#2559#><#2558#>

func@star<#461#>int strcmp(const~char &sstarf#star;str1, const~char &sstarf#star;str2);<#461#> func@star<#462#>int strncmp(const~char &sstarf#star;str1, const~char &sstarf#star;str2, size_t no);<#462#> =2000 to <#2562#> <#2563#>by -Compare string <#2564#>#tex2html_accent_inline5335#<#2564#> with string <#2565#>#tex2html_accent_inline5336#<#2565#>. <#2566#>#tex2html_accent_inline5337#<#2566#>() compares at most <#2567#>#tex2html_accent_inline5338#<#2567#> characters.<#2563#><#2562#>

func@star<#467#>char &sstarf#star;strcpy(char &sstarf#star;dst, const~char &sstarf#star;src);<#467#> func@star<#468#>char &sstarf#star;strncpy(char &sstarf#star;dst, const~char &sstarf#star;src, size_t no);<#468#> =2000 to <#2568#> <#2569#>by -Copy string at <#2570#>#tex2html_accent_inline5339#<#2570#> to <#2571#>#tex2html_accent_inline5340#<#2571#>. <#2572#>#tex2html_accent_inline5341#<#2572#>() copies at most <#2573#>sl no<#2573#> characters.<#2569#><#2568#>

func@star<#473#>size_t strcspn(const~char &sstarf#star;str, const~char &sstarf#star;rej);<#473#> =2000 to <#2574#> <#2575#>by -Find length of initial segment of <#2576#>#tex2html_accent_inline5342#<#2576#> consisting entirely of characters not from <#2577#>#tex2html_accent_inline5343#<#2577#>.<#2575#><#2574#>

func@star<#476#>char &sstarf#star;strdup(const~char &sstarf#star;str);<#476#> =2000 to <#2578#> <#2579#>by -Return a duplicate of string <#2580#>#tex2html_accent_inline5344#<#2580#>.<#2579#><#2578#>

func@star<#478#>char &sstarf#star;strerror(int errno);<#478#> =2000 to <#2581#> <#2582#>by -Map error number <#2583#>#tex2html_accent_inline5345#<#2583#> to a descriptive string.<#2582#><#2581#>

func@star<#480#>int stricmp(const~char &sstarf#star;str1, const~char &sstarf#star;str2);<#480#> func@star<#481#>int strcmpi(const~char &sstarf#star;str1, const~char &sstarf#star;str2);<#481#> func@star<#482#>int strnicmp(const~char &sstarf#star;str1, const~char &sstarf#star;str2, size_t no);<#482#> func@star<#483#>int strncmpi(const~char &sstarf#star;str1, const~char &sstarf#star;str2, size_t no);<#483#> =2000 to <#2584#> <#2585#>by -Same as <#2586#>#tex2html_accent_inline5346#<#2586#>() and <#2587#>#tex2html_accent_inline5347#<#2587#>(), except the case is ignored.<#2585#><#2584#>

func@star<#486#>size_t strlen(const~char &sstarf#star;str);<#486#> =2000 to <#2588#> <#2589#>by -Return length of string <#2590#>#tex2html_accent_inline5348#<#2590#>.<#2589#><#2588#>

func@star<#488#>char &sstarf#star;strlwr(char &sstarf#star;str);<#488#> =2000 to <#2591#> <#2592#>by -Change all character from string <#2593#>#tex2html_accent_inline5349#<#2593#> to lowercase.<#2592#><#2591#>

func@star<#490#>char &sstarf#star;strpbrk(const~char &sstarf#star;str, const~char &sstarf#star;breakat);<#490#> =2000 to <#2594#> <#2595#>by -First occurrence of a character from string <#2596#>#tex2html_accent_inline5350#<#2596#> in string <#2597#>#tex2html_accent_inline5351#<#2597#>.<#2595#><#2594#>

func@star<#493#>char &sstarf#star;strrev(char &sstarf#star;str);<#493#> =2000 to <#2598#> <#2599#>by -Reverse all charcters in string <#2600#>#tex2html_accent_inline5352#<#2600#>. First character becomes last character.<#2599#><#2598#>

func@star<#495#>size_t strspn(const~char &sstarf#star;str, const~char &sstarf#star;accept);<#495#> =2000 to <#2601#> <#2602#>by -Find length of initial segment of <#2603#>#tex2html_accent_inline5353#<#2603#> consisting entirely of characters from <#2604#>#tex2html_accent_inline5354#<#2604#>.<#2602#><#2601#>

func@star<#498#>char &sstarf#star;strstr(const~char &sstarf#star;str, const~char &sstarf#star;wanted);<#498#> =2000 to <#2605#> <#2606#>by -Find first occurence of string <#2607#>#tex2html_accent_inline5355#<#2607#> in string <#2608#>#tex2html_accent_inline5356#<#2608#>.<#2606#><#2605#>

func@star<#501#>char &sstarf#star;strtok(char &sstarf#star;str, const~char &sstarf#star;delim);<#501#> =2000 to <#2609#> <#2610#>by -Retrieve fields from string <#2611#>#tex2html_accent_inline5357#<#2611#>, that are delimited by characters from string <#2612#>#tex2html_accent_inline5358#<#2612#>.<#2610#><#2609#>

<#2613#>Process Management<#2613#>

<#2614#>#tex2html_accent_inline5359#<#2614#><#2616#>section<#2616#><#2617#>Process Management<#2617#><#2618#><#2618#>

#include stdlib.h;SPMgt;

func@star<#505#>void abort();<#505#> =2000 to <#2619#> <#2620#>by -Immediatly abort the running program.<#2620#><#2619#>

func@star<#507#>int atexit(void (&sstarf#star;func)());<#507#> =2000 to <#2621#> <#2622#>by -Register a function for execution on termination.<#2622#><#2621#>

func@star<#509#>void exit(int ret);<#509#> =2000 to <#2623#> <#2624#>by -Exit current process with return value <#2625#>#tex2html_accent_inline5360#<#2625#>.<#2624#><#2623#>

func@star<#511#>int system(const~char &sstarf#star;prog);<#511#> =2000 to <#2626#> <#2627#>by -Execute command <#2628#>#tex2html_accent_inline5361#<#2628#> passed as a string.<#2627#><#2626#>


#include process.h;SPMgt;

func@star<#513#>int spawnl(int mode, char &sstarf#star;path, …);<#513#> func@star<#2045#>int spawnv(int mode, char &sstarf#star;path, char <#514#>&sstarf#star;&sstarf#star;<#514#>argv);<#2045#> func@star<#515#>int spawnle(int mode, char &sstarf#star;path, …);<#515#> func@star<#2046#>int spawnve(int mode, char &sstarf#star;path, char <#516#>&sstarf#star;&sstarf#star;<#516#>argv, char <#517#>&sstarf#star;&sstarf#star;<#517#>envp);<#2046#> =2000 to <#2629#> <#2630#>by -Spawn a new process. (Only <#2631#>#tex2html_accent_inline5364#<#2631#> is allowed for <#2632#>#tex2html_accent_inline5365#<#2632#>).<#2630#><#2629#>

func@star<#2048#>int spawnvp(int mode, char &sstarf#star;name, char <#520#>&sstarf#star;&sstarf#star;<#520#>argv);<#2048#> func@star<#521#>int spawnlp(int mode, char &sstarf#star;name, …);<#521#> =2000 to <#2633#> <#2634#>by -Execute a program on the defautl system execution path. (The current directory is always searched first.)<#2634#><#2633#>

<#2635#>Date and Time<#2635#>

<#2636#>#tex2html_accent_inline5367#<#2636#><#2638#>section<#2638#><#2639#>Date and Time<#2639#><#2640#><#2640#>

#include time.h;SPMgt;

func@star<#524#>char &sstarf#star;asctime(const~struct tm &sstarf#star;t);<#524#> =2000 to <#2641#> <#2642#>by -Convert ``time'' structure to a string.<#2642#><#2641#>

func@star<#526#>clock_t clock();<#526#> =2000 to <#2643#> <#2644#>by -Return process time used so far in units of CLK_TCK ticks per second (under TOS, 200 per second).<#2644#><#2643#>

func@star<#528#>char &sstarf#star;ctime(const~time_t &sstarf#star;t);<#528#> =2000 to <#2645#> <#2646#>by -Convert time in seconds since 1970 to a string.<#2646#><#2645#>

func@star<#530#>double difftime(time_t t1, time_t t2);<#530#> =2000 to <#2647#> <#2648#>by -Return difference between two ``time_t'' types.<#2648#><#2647#>

func@star<#532#>struct~tm &sstarf#star;gmtime(const~time_t &sstarf#star;t);<#532#> =2000 to <#2649#> <#2650#>by -Get the Greenwich Mean time.<#2650#><#2649#>

func@star<#534#>struct~tm &sstarf#star;localtime(const~time_t &sstarf#star;t);<#534#> =2000 to <#2651#> <#2652#>by -Convert given time in seconds since 1970 to local time.<#2652#><#2651#>

func@star<#536#>time_t mktime(const~struct tm &sstarf#star;t);<#536#> =2000 to <#2653#> <#2654#>by -Take a time structure and convert it into representation ``seconds since midnight January 1 1970, GMT''.<#2654#><#2653#>

func@star<#538#>size_t strftime(char &sstarf#star;s, size_t maxsize, const~char &sstarf#star;format, const~struct tm &sstarf#star;timeptr);<#538#> =2000 to <#2655#> <#2656#>by -Print formatted information about a given time.<#2656#><#2655#>

func@star<#540#>time_t time(time_t &sstarf#star;t);<#540#> =2000 to <#2657#> <#2658#>by -Return time in seconds since midnight January 1 1970, GMT.<#2658#><#2657#>

func@star<#542#>void tzset();<#542#> =2000 to <#2659#> <#2660#>by -Set the timezone and dst flag to the local rules (depending on environment variable ``TZ'').<#2660#><#2659#>

<#2661#>File and Directory Information<#2661#>

<#2662#>#tex2html_accent_inline5368#<#2662#><#2664#>section<#2664#><#2665#>File and Directory Information<#2665#><#2666#><#2666#>

#include stat.h;SPMgt;

func@star<#545#>int fstat(int fd, struct stat &sstarf#star;info);<#545#> =2000 to <#2667#> <#2668#>by -Obtain information about file assosiated with filedescriptor <#2669#>#tex2html_accent_inline5369#<#2669#>.<#2668#><#2667#>

func@star<#547#>int lstat(const~char &sstarf#star;fname, struct stat &sstarf#star;info);<#547#> =2000 to <#2670#> <#2671#>by -Like <#2672#>#tex2html_accent_inline5370#<#2672#> but return info about <#2673#>#tex2html_accent_inline5371#<#2673#>.<#2671#><#2670#>

func@star<#550#>int stat(const~char &sstarf#star;fname, struct stat &sstarf#star;info);<#550#> =2000 to <#2674#> <#2675#>by -Obtain information about file <#2676#>#tex2html_accent_inline5372#<#2676#>.<#2675#><#2674#>


#include dirent.h;SPMgt;

func@star<#552#>int closedir(DIR &sstarf#star;dirp);<#552#> =2000 to <#2677#> <#2678#>by -Close directory assosiated with <#2679#>#tex2html_accent_inline5373#<#2679#>.<#2678#><#2677#>

func@star<#554#>DIR &sstarf#star;opendir(const~char &sstarf#star;dirname);<#554#> =2000 to <#2680#> <#2681#>by -Open directory <#2682#>#tex2html_accent_inline5374#<#2682#> for reading.<#2681#><#2680#>

func@star<#556#>struct~dirent &sstarf#star;readdir(DIR &sstarf#star;dirp);<#556#> =2000 to <#2683#> <#2684#>by -Read an entry from directory assosiated with <#2685#>#tex2html_accent_inline5375#<#2685#>.<#2684#><#2683#>

func@star<#558#>void rewinddir(DIR &sstarf#star;dirp);<#558#> =2000 to <#2686#> <#2687#>by -Seek to the beginning of directory assosiated with <#2688#>#tex2html_accent_inline5376#<#2688#>.<#2687#><#2686#>

func@star<#560#>void seekdir(DIR &sstarf#star;dirp, off_t loc);<#560#> =2000 to <#2689#> <#2690#>by -Seek to position <#2691#>#tex2html_accent_inline5377#<#2691#> in the directory assosiated with <#2692#>#tex2html_accent_inline5378#<#2692#>.<#2690#><#2689#>

func@star<#563#>off_t telldir(DIR &sstarf#star;dirp);<#563#> =2000 to <#2693#> <#2694#>by -Get the current position in directory assosiated with <#2695#>#tex2html_accent_inline5379#<#2695#>.<#2694#><#2693#>

func@star<#2058#>int alphasort(struct~dirent <#565#>&sstarf#star;&sstarf#star;<#565#>src, struct~dirent <#566#>&sstarf#star;&sstarf#star;<#566#>dst);<#2058#> =2000 to <#2696#> <#2697#>by -<#2697#><#2696#>


#include ftw.h;SPMgt;

func@star<#568#>int ftw(char &sstarf#star;path, int (&sstarf#star;fn)(), int param);<#568#> =2000 to <#2698#> <#2699#>by -Recursively walk tree rooted at <#2700#>#tex2html_accent_inline5380#<#2700#> applying function <#2701#>#tex2html_accent_inline5381#<#2701#>.<#2699#><#2698#>

<#2702#>Regular Expressions<#2702#>

<#2703#>#tex2html_accent_inline5382#<#2703#><#2705#>section<#2705#><#2706#>Regular Expressions<#2706#><#2707#><#2707#>

#include regexp.h;SPMgt;

func@star<#572#>regexp &sstarf#star;regcomp(char &sstarf#star;exp);<#572#> =2000 to <#2708#> <#2709#>by -Compile a regular expression into an internal code.<#2709#><#2708#>

func@star<#574#>int regexec(regexp &sstarf#star;prog, char &sstarf#star;string, int bolflag);<#574#> =2000 to <#2710#> <#2711#>by -Match the previously compiled expression <#2712#>#tex2html_accent_inline5383#<#2712#> against the <#2713#>#tex2html_accent_inline5384#<#2713#>.<#2711#><#2710#>

func@star<#577#>void regsub(regexp &sstarf#star;prog, char &sstarf#star;source, char &sstarf#star;dest);<#577#> =2000 to <#2714#> <#2715#>by -Substitute the previously matched expression <#2716#>#tex2html_accent_inline5385#<#2716#> with <#2717#>#tex2html_accent_inline5386#<#2717#>. The result is copied to <#2718#>#tex2html_accent_inline5387#<#2718#>.<#2715#><#2714#>

func@star<#581#>void regdump(regexp &sstarf#star;r);<#581#> =2000 to <#2719#> <#2720#>by -Dump the regular expression <#2721#>#tex2html_accent_inline5388#<#2721#> onto stdout;SPMgt; in vaguely comprehensible form.<#2720#><#2719#>

<#2722#>Setjmp Signal Stuff<#2722#>

<#2723#>#tex2html_accent_inline5389#<#2723#><#2725#>section<#2725#><#2726#>Setjmp Signal Stuff<#2726#><#2727#><#2727#>

#include setjmp.h;SPMgt;

func@star<#584#>int setjmp(jmp_buf buf);<#584#> =2000 to <#2728#> <#2729#>by -Prepare buffer <#2730#>#tex2html_accent_inline5390#<#2730#> for non local goto via <#2731#>#tex2html_accent_inline5391#<#2731#>().<#2729#><#2728#>

func@star<#587#>void longjmp(jmp_buf buf, int rv);<#587#> =2000 to <#2732#> <#2733#>by -Return to previously saved context <#2734#>#tex2html_accent_inline5392#<#2734#> with return value <#2735#>#tex2html_accent_inline5393#<#2735#>.<#2733#><#2732#>

func@star<#590#>int catch(jmp_buf id, int (*fn)(void));<#590#> =2000 to <#2736#> <#2737#>by -<#2737#><#2736#>

func@star<#592#>void throw(jmp_buf id, int rv);<#592#> =2000 to <#2738#> <#2739#>by -<#2739#><#2738#>


#include signal.h;SPMgt;

func@star<#2065#><#594#>__Sigfunc<#594#> signal(int sig, __Sigfunc func);<#2065#> =2000 to <#2740#> <#2741#>by -Install the handler <#2742#>#tex2html_accent_inline5394#<#2742#> for signal <#2743#>#tex2html_accent_inline5395#<#2743#>.<#2741#><#2740#>

func@star<#597#>int raise(int sig);<#597#> =2000 to <#2744#> <#2745#>by -<#2745#><#2744#>

func@star<#599#>long sigsetmask(long mask);<#599#> =2000 to <#2746#> <#2747#>by -(MiNT)<#2747#><#2746#>

func@star<#601#>long sigblock(long mask);<#601#> =2000 to <#2748#> <#2749#>by -(MiNT)<#2749#><#2748#>

<#2750#>U*IX Compatibility Routines<#2750#>

<#2751#>#tex2html_accent_inline5396#<#2751#><#2753#>section<#2753#><#2754#>U*IX Compatibility Routines<#2754#><#2755#><#2755#>

#include unistd.h;SPMgt;

func@star<#604#>void _exit(int ret);<#604#> =2000 to <#2756#> <#2757#>by -Exit the current process without cleaning up. (This is a <#2758#>#tex2html_accent_inline5397#<#2758#>)<#2757#><#2756#>

func@star<#606#>int access(const~char &sstarf#star;fname, int mode);<#606#> =2000 to <#2759#> <#2760#>by -Check, if file <#2761#>#tex2html_accent_inline5398#<#2761#> is accessable with mode <#2762#>#tex2html_accent_inline5399#<#2762#>.<#2760#><#2759#>

func@star<#609#>unsigned~int alarm(unsigned~int sec);<#609#> =2000 to <#2763#> <#2764#>by -Instructs the alarm clock of the calling process to send the signal SIGALRM to the calling process after <#2765#>#tex2html_accent_inline5400#<#2765#> seconds<#2764#><#2763#>

func@star<#611#>int chdir(const~char &sstarf#star;dname);<#611#> =2000 to <#2766#> <#2767#>by -Chane the current working directory to <#2768#>#tex2html_accent_inline5401#<#2768#> including drive specification.<#2767#><#2766#>

func@star<#613#>int chmod(const~char &sstarf#star;fname, int mode);<#613#> =2000 to <#2769#> <#2770#>by -Change permissions of file <#2771#>#tex2html_accent_inline5402#<#2771#> to <#2772#>#tex2html_accent_inline5403#<#2772#>.<#2770#><#2769#>

func@star<#616#>int chown(const~char &sstarf#star;fname, int uid, int gid);<#616#> =2000 to <#2773#> <#2774#>by -Change owner and group of file <#2775#>#tex2html_accent_inline5404#<#2775#>. (Fake for now)<#2774#><#2773#>

func@star<#618#>int close(int fd);<#618#> =2000 to <#2776#> <#2777#>by -Close the file assosiated with file descriptor <#2778#>#tex2html_accent_inline5405#<#2778#>.<#2777#><#2776#>

func@star<#620#>int creat(const~char &sstarf#star;fname, unsigned mode);<#620#> =2000 to <#2779#> <#2780#>by -Create the file <#2781#>#tex2html_accent_inline5406#<#2781#> with mode <#2782#>#tex2html_accent_inline5407#<#2782#>.<#2780#><#2779#>

func@star<#623#>int dup(int fd);<#623#> =2000 to <#2783#> <#2784#>by -Duplicate filedescriptor <#2785#>#tex2html_accent_inline5408#<#2785#>.<#2784#><#2783#>

func@star<#625#>int dup2(int fd1, int fd2);<#625#> =2000 to <#2786#> <#2787#>by -Duplicate filedescriptor <#2788#>#tex2html_accent_inline5409#<#2788#> to <#2789#>#tex2html_accent_inline5410#<#2789#>.<#2787#><#2786#>

func@star<#628#>int execl(char &sstarf#star;path, …);<#628#> func@star<#2077#>int execle(char &sstarf#star;path, …, char <#629#>&sstarf#star;&sstarf#star;<#629#>envp);<#2077#> func@star<#630#>int execlp(char &sstarf#star;path, …);<#630#> =2000 to <#2790#> <#2791#>by -Execute a new process from <#2792#>#tex2html_accent_inline5414#<#2792#> after a <#2793#>#tex2html_accent_inline5415#<#2793#>, <#2794#>#tex2html_accent_inline5416#<#2794#> use the PATH environment.<#2791#><#2790#>

func@star<#2079#>int execv(char &sstarf#star;path, char <#634#>&sstarf#star;&sstarf#star;<#634#>argv);<#2079#> func@star<#2080#>int execvp(char &sstarf#star;path, char <#635#>&sstarf#star;&sstarf#star;<#635#>argv);<#2080#> func@star<#2081#>int execve(char &sstarf#star;path, char <#636#>&sstarf#star;&sstarf#star;<#636#>argv, char <#637#>&sstarf#star;&sstarf#star;<#637#>envp);<#2081#> =2000 to <#2795#> <#2796#>by -Execute a new process from <#2797#>#tex2html_accent_inline5417#<#2797#> after a <#2798#>#tex2html_accent_inline5418#<#2798#>, using the argv method. <#2799#>#tex2html_accent_inline5419#<#2799#> use the PATH environment.<#2796#><#2795#>

func@star<#641#>int fork();<#641#> func@star<#642#>int vfork();<#642#> =2000 to <#2800#> <#2801#>by -Simulate a non multitasking fork. <#2802#>#tex2html_accent_inline5420#<#2802#> shares data + stack with parent.<#2801#><#2800#>

func@star<#644#>char &sstarf#star;getcwd(char &sstarf#star;buf, int size);<#644#> func@star<#645#>char &sstarf#star;getwd(char &sstarf#star;buf);<#645#> =2000 to <#2803#> <#2804#>by -Get the current working directory.<#2804#><#2803#>

func@star<#647#>unsigned~short getgid();<#647#> func@star<#648#>unsigned~short getuid();<#648#> =2000 to <#2805#> <#2806#>by -Get user and group id's. (Fake for now, returning alsways root).<#2806#><#2805#>

func@star<#650#>unsigned~short getegid();<#650#> func@star<#651#>unsigned~short geteuid();<#651#> =2000 to <#2807#> <#2808#>by -Get effective user and group id's.<#2808#><#2807#>

func@star<#653#>int getgroups(int setlen, gid_t &sstarf#star;gidset);<#653#> =2000 to <#2809#> <#2810#>by -Retrieves the current group access list of the user process and stores it in <#2811#>#tex2html_accent_inline5421#<#2811#>.<#2810#><#2809#>

func@star<#655#>char &sstarf#star;getlogin();<#655#> =2000 to <#2812#> <#2813#>by -Return the user's login name. (Password file and environment are seached in order).<#2813#><#2812#>

func@star<#2085#>int getopt(int argc, const~char <#657#>&sstarf#star;&sstarf#star;<#657#>argv, const~char &sstarf#star;opt);<#2085#> =2000 to <#2814#> <#2815#>by -Extract the command line options described by <#2816#>#tex2html_accent_inline5422#<#2816#> from <#2817#>#tex2html_accent_inline5423#<#2817#>.<#2815#><#2814#>

func@star<#660#>int getpagesize (void);<#660#> =2000 to <#2818#> <#2819#>by -Get system page size<#2819#><#2818#>

func@star<#662#>char /*getpass(char *prompt);<#662#> =2000 to <#2820#> <#2821#>by -<#2821#><#2820#>

func@star<#664#>int getpgrp();<#664#> func@star<#665#>int setpgrp();<#665#> =2000 to <#2822#> <#2823#>by -Get or create a process group (This basically a fake; both return <#2824#>#tex2html_accent_inline5424#<#2824#>).<#2823#><#2822#>

func@star<#667#>int getpid();<#667#> func@star<#668#>int getppid();<#668#> func@star<#669#>int setpgid (pid_t pid, pid_t pgid);<#669#> =2000 to <#2825#> <#2826#>by -Return a process id for the currently running process (or the parent process) (from the basepage).<#2826#><#2825#>

func@star<#671#>char &sstarf#star;initstate(unsigned seed, char &sstarf#star;arg_state, int n);<#671#> =2000 to <#2827#> <#2828#>by -Initialize state array of generator for <#2829#>#tex2html_accent_inline5425#<#2829#>.<#2828#><#2827#>

func@star<#673#>int isatty(int fd);<#673#> =2000 to <#2830#> <#2831#>by -Check, if <#2832#>#tex2html_accent_inline5426#<#2832#> is associated with a terminal (screen).<#2831#><#2830#>

func@star<#675#>int link(const~char &sstarf#star;old , const~char &sstarf#star;new);<#675#> =2000 to <#2833#> <#2834#>by -Make a new link from <#2835#>#tex2html_accent_inline5427#<#2835#> to <#2836#>#tex2html_accent_inline5428#<#2836#>. Always fails.<#2834#><#2833#>

func@star<#678#>long lseek(int fd, long pos, int whence);<#678#> =2000 to <#2837#> <#2838#>by -Set the current file posistion to position <#2839#>#tex2html_accent_inline5429#<#2839#> relative to <#2840#>#tex2html_accent_inline5430#<#2840#>.<#2838#><#2837#>

func@star<#681#>int mkdir(const~char &sstarf#star;dname, unsigned mode);<#681#> =2000 to <#2841#> <#2842#>by -Make a directory with name <#2843#>#tex2html_accent_inline5431#<#2843#> and change its mode to <#2844#>#tex2html_accent_inline5432#<#2844#>.<#2842#><#2841#>

func@star<#684#>char &sstarf#star;mktemp(char &sstarf#star;pattern);<#684#> =2000 to <#2845#> <#2846#>by -Return a filename for a temporary file, build after <#2847#>#tex2html_accent_inline5433#<#2847#>.<#2846#><#2845#>

func@star<#686#>int open(const~char &sstarf#star;fname, int mode, …);<#686#> =2000 to <#2848#> <#2849#>by -Open the file <#2850#>#tex2html_accent_inline5435#<#2850#> with mode <#2851#>#tex2html_accent_inline5436#<#2851#>.<#2849#><#2848#>

func@star<#689#>long pathconf (const char &sstarf#star;path, int name);<#689#> =2000 to <#2852#> <#2853#>by -Get configurable pathname variables.<#2853#><#2852#>

<#2095#>=The following table lists the possible values for <#691#>#tex2html_accent_inline5437#<#691#>.

<#2095#>

;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp;##;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMamp;##;SPMamp;;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp;##;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp; name;SPMamp;;SPMamp;Meaning <#694#>


<#694#> _PC_IOPEN_MAX;SPMamp;;SPMamp;internal limit on open files _PC_LINK_MAX;SPMamp;;SPMamp;max # of links _PC_PATH_MAX;SPMamp;;SPMamp;max len of a full pathname _PC_NAME_MAX;SPMamp;;SPMamp;max len of individual name _PC_PIPE_BUF;SPMamp;;SPMamp;bytes written atomically to fifo _PC_NO_TRUNC;SPMamp;;SPMamp;filename trucation <#2856#>

<#2856#> =0em

func@star<#707#>int pause (void);<#707#> =2000 to <#2859#> <#2860#>by -Suspends the calling process until it receives a signal.<#2860#><#2859#>

func@star<#709#>int pipe (int &sstarf#star;fildes);<#709#> =2000 to <#2861#> <#2862#>by -Creates a pipe and returns two file descriptors. <#2863#>#tex2html_accent_inline5438#<#2863#> for reading, <#2864#>#tex2html_accent_inline5439#<#2864#> for writing.<#2862#><#2861#>

func@star<#712#>void psignal(int signal, const~char &sstarf#star;prefix);<#712#> =2000 to <#2865#> <#2866#>by -Print a error message describing the signal with a user comment.<#2866#><#2865#>

func@star<#714#>long random();<#714#> =2000 to <#2867#> <#2868#>by -Return a pseudo random number in the range from 0 to 231 - 1.<#2868#><#2867#>

func@star<#716#>int rmdir(const~char &sstarf#star;dname);<#716#> =2000 to <#2869#> <#2870#>by -Remove the directory with name <#2871#>#tex2html_accent_inline5441#<#2871#>.<#2870#><#2869#>

func@star<#718#>int read(int fd, void &sstarf#star;buf, unsigned cnt);<#718#> func@star<#719#>long _read(int fd, void &sstarf#star;buf, unsigned~long cnt);<#719#> =2000 to <#2872#> <#2873#>by -Read <#2874#>#tex2html_accent_inline5442#<#2874#> bytes from file descriptor <#2875#>#tex2html_accent_inline5443#<#2875#> into buffer <#2876#>#tex2html_accent_inline5444#<#2876#>.<#2873#><#2872#>

func@star<#723#>int readlink (char &sstarf#star;filenam, char &sstarf#star;linkto, int siz);<#723#> =2000 to <#2877#> <#2878#>by -Read value of a symbolic link<#2878#><#2877#>

func@star<#725#>void &sstarf#star;sbrk(unsigned~long size);<#725#> func@star<#726#>void &sstarf#star;lsbrk(long size);<#726#> =2000 to <#2879#> <#2880#>by -Emulation of the U&sstarf#star;ix <#2881#>#tex2html_accent_inline5445#<#2881#> system call.<#2880#><#2879#>

func@star<#728#>void setlinebuf(void &sstarf#star;fp);<#728#> =2000 to <#2882#> <#2883#>by -Change the buffering on stream <#2884#>#tex2html_accent_inline5446#<#2884#> from block/unbuffered to line buffered.<#2883#><#2882#>

func@star<#730#>int setgid(int gid);<#730#> func@star<#731#>int setuid(int uid);<#731#> =2000 to <#2885#> <#2886#>by -Set the real group or user id.<#2886#><#2885#>

func@star<#733#>int setegid(int gid);<#733#> func@star<#734#>int seteuid(int uid);<#734#> =2000 to <#2887#> <#2888#>by -Set the effective group or user id.<#2888#><#2887#>

func@star<#736#>int setregid (int rgid, int egid);<#736#> func@star<#737#>int setreuid (int ruid, int euid);<#737#> =2000 to <#2889#> <#2890#>by -Set real and effective group or user id.<#2890#><#2889#>

func@star<#739#>int setsid (void);<#739#> =2000 to <#2891#> <#2892#>by -Create session and set process group ids<#2892#><#2891#>

func@star<#741#>char &sstarf#star;setstate(char &sstarf#star;arg_state);<#741#> =2000 to <#2893#> <#2894#>by -Switch state of generator for <#2895#>#tex2html_accent_inline5447#<#2895#>.<#2894#><#2893#>

func@star<#743#>void sigpause(long mask);<#743#> =2000 to <#2896#> <#2897#>by -Suspends the calling process until it receives a signal.<#2897#><#2896#>

func@star<#745#>int sleep(int n);<#745#> =2000 to <#2898#> <#2899#>by -Sleep for <#2900#>#tex2html_accent_inline5448#<#2900#> number of seconds.<#2899#><#2898#>

func@star<#747#>int srandom(unsigned int x);<#747#> =2000 to <#2901#> <#2902#>by -Seed generator for <#2903#>#tex2html_accent_inline5449#<#2903#>.<#2902#><#2901#>

func@star<#749#>int stime(long &sstarf#star;time);<#749#> =2000 to <#2904#> <#2905#>by -Set the current time to <#2906#>#tex2html_accent_inline5450#<#2906#> in U&sstarf#star;ix format.<#2905#><#2904#>

func@star<#751#>int symlink (char &sstarf#star;oldname, char &sstarf#star;newname);<#751#> =2000 to <#2907#> <#2908#>by -Make symbolic link to a file<#2908#><#2907#>

func@star<#753#>long sysconf (int name);<#753#> =2000 to <#2909#> <#2910#>by -Get configurable system variables.<#2910#><#2909#>

<#2105#>=The following table lists the possible values for <#755#>#tex2html_accent_inline5451#<#755#>.

<#2105#>

;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp;##;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMamp;##;SPMamp;;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp;##;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp; name;SPMamp;;SPMamp;Meaning <#758#>


<#758#> _SC_MEMR_MAX;SPMamp;;SPMamp;memory regions per process _SC_ARG_MAX;SPMamp;;SPMamp;max length of cmdln _SC_OPEN_MAX;SPMamp;;SPMamp;max # of open files per process _SC_NGROUPS_MAX;SPMamp;;SPMamp;max # of supp gids _SC_CHILD_MAX;SPMamp;;SPMamp;max # processes per user <#2913#>

<#2913#>

func@star<#769#>long tell(int fd);<#769#> =2000 to <#2916#> <#2917#>by -Get the current file position of the file associated with <#2918#>#tex2html_accent_inline5452#<#2918#>.<#2917#><#2916#>

func@star<#771#>int times(struct tms &sstarf#star;buf);<#771#> =2000 to <#2919#> <#2920#>by -Get process times into <#2921#>#tex2html_accent_inline5453#<#2921#>.<#2920#><#2919#>

func@star<#773#>char &sstarf#star;ttyname(int file);<#773#> =2000 to <#2922#> <#2923#>by -<#2923#><#2922#>

func@star<#775#>int umask(int mode);<#775#> =2000 to <#2924#> <#2925#>by -Set access mask. (Fake for now)<#2925#><#2924#>

func@star<#777#>int unlink(const~char &sstarf#star;fname);<#777#> =2000 to <#2926#> <#2927#>by -Remove the file with name <#2928#>#tex2html_accent_inline5454#<#2928#>.<#2927#><#2926#>

func@star<#779#>void usleep(unsigned~long n);<#779#> =2000 to <#2929#> <#2930#>by -Sleep for <#2931#>#tex2html_accent_inline5455#<#2931#> number of milliseconds.<#2930#><#2929#>

func@star<#781#>int utime(const~char &sstarf#star;fname, const~struct utimbuf &sstarf#star;ftime);<#781#> =2000 to <#2932#> <#2933#>by -Set the modification time and date of file <#2934#>#tex2html_accent_inline5456#<#2934#> to <#2935#>#tex2html_accent_inline5457#<#2935#>.<#2933#><#2932#>

func@star<#784#>int write(int fd, const~void &sstarf#star;buf, unsigned cnt);<#784#> func@star<#785#>long _write(int fd, const~void &sstarf#star;buf, unsigned~long cnt);<#785#> =2000 to <#2936#> <#2937#>by -Write <#2938#>#tex2html_accent_inline5458#<#2938#> bytes from buffer <#2939#>#tex2html_accent_inline5459#<#2939#> to file descriptor <#2940#>#tex2html_accent_inline5460#<#2940#>.<#2937#><#2936#>

func@star<#789#>int wait(int &sstarf#star;exit_code);<#789#> =2000 to <#2941#> <#2942#>by -Wait for child process.<#2942#><#2941#>

<#2943#>Password and Group Handling<#2943#>

<#2944#>#tex2html_accent_inline5461#<#2944#><#2946#>section<#2946#><#2947#>Password and Group Handling<#2947#><#2948#><#2948#>

#include pwd.h;SPMgt;

func@star<#792#>void endpwent();<#792#> =2000 to <#2949#> <#2950#>by -Close password file.<#2950#><#2949#>

func@star<#794#>struct~passwd &sstarf#star;getpwent();<#794#> =2000 to <#2951#> <#2952#>by -Return an entry from the password file.<#2952#><#2951#>

func@star<#796#>struct~passwd &sstarf#star;getpwuid(int uid);<#796#> =2000 to <#2953#> <#2954#>by -Return the entry from the password file for <#2955#>#tex2html_accent_inline5462#<#2955#>.<#2954#><#2953#>

func@star<#798#>struct~passwd &sstarf#star;getpwnam(const~char &sstarf#star;user);<#798#> =2000 to <#2956#> <#2957#>by -Return the entry from the password file for <#2958#>#tex2html_accent_inline5463#<#2958#>.<#2957#><#2956#>

func@star<#800#>void setpwent();<#800#> =2000 to <#2959#> <#2960#>by -Open password file for further operations.<#2960#><#2959#>

func@star<#802#>void setpwfile(char &sstarf#star;fname);<#802#> =2000 to <#2961#> <#2962#>by -Use the <#2963#>#tex2html_accent_inline5464#<#2963#> instead of <#2964#>#tex2html_accent_inline5465#<#2964#> as password file.<#2962#><#2961#>


#include grp.h;SPMgt;

func@star<#805#>void endgrent();<#805#> =2000 to <#2965#> <#2966#>by -Close group file.<#2966#><#2965#>

func@star<#807#>struct~group &sstarf#star;getgrent()<#807#> =2000 to <#2967#> <#2968#>by -Return an entry from the group file.<#2968#><#2967#>

func@star<#809#>struct~group &sstarf#star;getgrgid(int gid);<#809#> =2000 to <#2969#> <#2970#>by -Return the entry from the group file for <#2971#>#tex2html_accent_inline5466#<#2971#>. (Mostly fake, returning root or user as groupnames)<#2970#><#2969#>

func@star<#811#>struct~group &sstarf#star;getgrnam(char &sstarf#star;gname);<#811#> =2000 to <#2972#> <#2973#>by -Return the entry from the group file for <#2974#>#tex2html_accent_inline5467#<#2974#>. (Mostly fake, returning root or user as groupnames)<#2973#><#2972#>

<#2975#>Value Conversion<#2975#>

<#2976#>#tex2html_accent_inline5468#<#2976#><#2978#>section<#2978#><#2979#>Value Conversion<#2979#><#2980#><#2980#>

#include stdlib.h;SPMgt;

func@star<#814#>double atof(const~char &sstarf#star;str);<#814#> =2000 to <#2981#> <#2982#>by -Return double value of number presented in <#2983#>#tex2html_accent_inline5469#<#2983#>.<#2982#><#2981#>

func@star<#816#>int atoi(const~char &sstarf#star;str);<#816#> =2000 to <#2984#> <#2985#>by -Return int value of number presented in <#2986#>#tex2html_accent_inline5470#<#2986#>.<#2985#><#2984#>

func@star<#818#>long atol(const~char &sstarf#star;str);<#818#> =2000 to <#2987#> <#2988#>by -Return long value of number presented in <#2989#>#tex2html_accent_inline5471#<#2989#>.<#2988#><#2987#>

func@star<#820#>int abs(int val);<#820#> func@star<#821#>long labs(long val);<#821#> =2000 to <#2990#> <#2991#>by -Return absolute value of <#2992#>#tex2html_accent_inline5472#<#2992#>.<#2991#><#2990#>

func@star<#2121#>long strtol(const~char &sstarf#star;nptr, char <#823#>&sstarf#star;&sstarf#star;<#823#>endptr, int base);<#2121#> func@star<#2122#>unsigned~long strtoul(const~char &sstarf#star;nptr, char <#824#>&sstarf#star;&sstarf#star;<#824#>endptr, int base);<#2122#> =2000 to <#2993#> <#2994#>by -Return the value of the number in <#2995#>#tex2html_accent_inline5473#<#2995#> with <#2996#>#tex2html_accent_inline5474#<#2996#> putting the endaddress of the numerical string into <#2997#>#tex2html_accent_inline5475#<#2997#>.<#2994#><#2993#>

func@star<#2124#>double strtod(const~char &sstarf#star;nptr, char <#828#>&sstarf#star;&sstarf#star;<#828#>endptr);<#2124#> =2000 to <#2998#> <#2999#>by -Return the double value of the number in <#3000#>#tex2html_accent_inline5476#<#3000#> putting the endaddress of the numerical string into <#3001#>#tex2html_accent_inline5477#<#3001#>.<#2999#><#2998#>


#include support.h;SPMgt;

func@star<#831#>char &sstarf#star;_itoa(int val, char &sstarf#star;buf, int radix);<#831#> func@star<#832#>char &sstarf#star;_ltoa(long val, char &sstarf#star;buf, int radix);<#832#> func@star<#833#>char &sstarf#star;_ultoa(unsigned long val, char &sstarf#star;buf, int radix);<#833#> =2000 to <#3002#> <#3003#>by -Convert the value <#3004#>#tex2html_accent_inline5478#<#3004#> to a string in <#3005#>#tex2html_accent_inline5479#<#3005#> according to <#3006#>#tex2html_accent_inline5480#<#3006#>.<#3003#><#3002#>


#include locale.h;SPMgt;

func@star<#837#>struct~lconv &sstarf#star;localeconv();<#837#> =2000 to <#3007#> <#3008#>by -Get rules of the current locale<#3008#><#3007#>

func@star<#839#>char &sstarf#star;setlocale(int category , const~char &sstarf#star;name);<#839#> =2000 to <#3009#> <#3010#>by -Define locale named in <#3011#>#tex2html_accent_inline5481#<#3011#>.<#3010#><#3009#>

<#3012#>Miscellaneous<#3012#>

<#3013#>#tex2html_accent_inline5482#<#3013#><#3015#>section<#3015#><#3016#>Miscellaneous<#3016#><#3017#><#3017#>

func@star<#842#>int _text_read(int fd, char &sstarf#star;buf, int bytes);<#842#> func@star<#843#>int _text_write(int fd, char &sstarf#star;buf, int bytes);<#843#> =2000 to <#3018#> <#3019#>by -The same as <#3020#>#tex2html_accent_inline5483#<#3020#>() and <#3021#>#tex2html_accent_inline5484#<#3021#>(), except the CR character is discarded on input and inserted on output.<#3019#><#3018#>


#include stdlib.h;SPMgt;

func@star<#846#>void &sstarf#star;bsearch(const~void &sstarf#star;key, const~void &sstarf#star;base, size_t num, size_t size, int (&sstarf#star;cmp)());<#846#> =2000 to <#3022#> <#3023#>by -Binary search a field starting at <#3024#>#tex2html_accent_inline5485#<#3024#> with <#3025#>#tex2html_accent_inline5486#<#3025#> elements each size <#3026#>#tex2html_accent_inline5487#<#3026#> for <#3027#>#tex2html_accent_inline5488#<#3027#>.<#3023#><#3022#>

func@star<#851#>div_t div(int num, int denom);<#851#> func@star<#852#>ldiv_t ldiv(long num, long denom);<#852#> =2000 to <#3028#> <#3029#>by -Perform division and return both quotient and remainder.<#3029#><#3028#>

func@star<#854#>char &sstarf#star;getenv(const~char &sstarf#star;name);<#854#> =2000 to <#3030#> <#3031#>by -Get the contents of the environment variable <#3032#>#tex2html_accent_inline5489#<#3032#>.<#3031#><#3030#>

func@star<#856#>void qsort(void &sstarf#star;base, size_t num, size_t size, int (&sstarf#star;cmp)());<#856#> =2000 to <#3033#> <#3034#>by -Quick sort an array of <#3035#>#tex2html_accent_inline5490#<#3035#> elements with size <#3036#>#tex2html_accent_inline5491#<#3036#> starting at <#3037#>#tex2html_accent_inline5492#<#3037#>.<#3034#><#3033#>

func@star<#860#>int rand();<#860#> =2000 to <#3038#> <#3039#>by -Return a pseudo random number in the range from 0 to <#3040#>#tex2html_accent_inline5493#<#3040#>.<#3039#><#3038#>

func@star<#862#>void srand(unsigned int seed);<#862#> =2000 to <#3041#> <#3042#>by -Use <#3043#>#tex2html_accent_inline5494#<#3043#> to initialize the pseudo-random number generator.<#3042#><#3041#>


#include keycodes.h;SPMgt;

func@star<#864#>int console_input_status(int handle);<#864#> =2000 to <#3044#> <#3045#>by -Check, if character is available from standart CON:. (This is the same as <#3046#>#tex2html_accent_inline5495#<#3046#>)<#3045#><#3044#>

func@star<#866#>unsigned~int console_read_byte(int handle);<#866#> =2000 to <#3047#> <#3048#>by -Raw input from standart CON: without echoing to screen. (This is the same as <#3049#>#tex2html_accent_inline5496#<#3049#>)<#3048#><#3047#>

func@star<#868#>void console_write_byte(int handle, int character);<#868#> =2000 to <#3050#> <#3051#>by -Write character <#3052#>#tex2html_accent_inline5497#<#3052#> to handle <#3053#>#tex2html_accent_inline5498#<#3053#>. (This is a <#3054#>#tex2html_accent_inline5499#<#3054#> with count 1)<#3051#><#3050#>


#include support.h;SPMgt;

func@star<#872#>void dos2unx(const~char &sstarf#star;t_fname, char &sstarf#star;u_fname);<#872#> =2000 to <#3055#> <#3056#>by -Convert filenames from TOS format to U&sstarf#star;ix format.<#3056#><#3055#>

func@star<#874#>time_t dostime(time_t);<#874#> =2000 to <#3057#> <#3058#>by -Convert U&sstarf#star;ix time to TOS time and date (lower word = time, upper word = date).<#3058#><#3057#>

func@star<#2137#>char &sstarf#star;findfile(char &sstarf#star;fname, char &sstarf#star;path, char <#876#>&sstarf#star;&sstarf#star;<#876#>ext);<#2137#> =2000 to <#3059#> <#3060#>by -Locate the file <#3061#>#tex2html_accent_inline5500#<#3061#> along the paths in <#3062#>#tex2html_accent_inline5501#<#3062#> with <#3063#>#tex2html_accent_inline5502#<#3063#> containing possible extensions.<#3060#><#3059#>

func@star<#880#>void fnmapfunc(fnmapfunc_t u2dos, fnmapfunc_t dos2u);<#880#> =2000 to <#3064#> <#3065#>by -Set mapping functions for the <#3066#>#tex2html_accent_inline5503#<#3066#> and <#3067#>#tex2html_accent_inline5504#<#3067#> routines.<#3065#><#3064#>

func@star<#883#>int symlink(char &sstarf#star;old , char &sstarf#star;new);<#883#> =2000 to <#3068#> <#3069#>by -Make a new symbolic link from <#3070#>#tex2html_accent_inline5505#<#3070#> to <#3071#>#tex2html_accent_inline5506#<#3071#>. Env. UNIXMODE determines behavior.<#3069#><#3068#>

func@star<#886#>int readlink(char &sstarf#star;fname , char &sstarf#star;buf, int siz);<#886#> =2000 to <#3072#> <#3073#>by -Read the link for <#3074#>#tex2html_accent_inline5507#<#3074#> into <#3075#>#tex2html_accent_inline5508#<#3075#>.<#3073#><#3072#>

func@star<#889#>time_t unixtime(unsigned tostime, unsigned tosdate);<#889#> =2000 to <#3076#> <#3077#>by -Convert a TOS time/date pair into a U&sstarf#star;ix time.<#3077#><#3076#>

func@star<#891#>void unx2dos(const~char &sstarf#star;u_fname, char &sstarf#star;t_fname);<#891#> =2000 to <#3078#> <#3079#>by -Convert filenames from U&sstarf#star;ix format to TOS format.<#3079#><#3078#>

func@star<#893#>void _set_unixmode(char &sstarf#star;mode);<#893#> =2000 to <#3080#> <#3081#>by -Set features of the extended file system.<#3081#><#3080#>

func@star<#895#>void _uniquefy(char &sstarf#star;dos);<#895#> =2000 to <#3082#> <#3083#>by -Make an unigue TOS filename for the extended file system.<#3083#><#3082#>


#include sysvars.h;SPMgt;

func@star<#897#>long get_sysvar(void &sstarf#star;var);<#897#> =2000 to <#3084#> <#3085#>by -Get the contents of the system variable <#3086#>#tex2html_accent_inline5509#<#3086#>.<#3085#><#3084#>

func@star<#899#>void set_sysvar_to_long(void &sstarf#star;var, long val);<#899#> =2000 to <#3087#> <#3088#>by -Set the system variable <#3089#>#tex2html_accent_inline5510#<#3089#> to the long value <#3090#>#tex2html_accent_inline5511#<#3090#>.<#3088#><#3087#>

<#3091#>Profiling<#3091#>

<#3092#>#tex2html_accent_inline5512#<#3092#><#3094#>section<#3094#><#3095#>Profiling<#3095#><#3096#><#3096#>

#include support.h;SPMgt;

also see <#903#>#tex2html_accent_inline5513#<#903#> and <#904#>#tex2html_accent_inline5514#<#904#> option to <#905#>#tex2html_accent_inline5515#<#905#>

func@star<#906#>void monstartup(void &sstarf#star;lpc, void &sstarf#star;hpc);<#906#> =2000 to <#3097#> <#3098#>by -High level interface to <#3099#>#tex2html_accent_inline5516#<#3099#>. <#3100#>#tex2html_accent_inline5517#<#3100#> is the range to sample. Necessary memory is dynamically allocated.<#3098#><#3097#>

func@star<#909#>void monitor(void &sstarf#star;lpc, void &sstarf#star;hpc, void &sstarf#star;buf, size_t bsiz, unsigned int nfunc);<#909#> =2000 to <#3101#> <#3102#>by -Low level interface to profil. <#3103#>#tex2html_accent_inline5518#<#3103#> is a user supplied buffer. PC samples over <#3104#>#tex2html_accent_inline5519#<#3104#> and <#3105#>#tex2html_accent_inline5520#<#3105#> call records are accumulated in <#3106#>#tex2html_accent_inline5521#<#3106#>.<#3102#><#3101#>

func@star<#914#>void moncontrol(long flag);<#914#> =2000 to <#3107#> <#3108#>by -Selectively control profiling in a program.<#3108#><#3107#>

func@star<#916#>int profil(void &sstarf#star;buf, unsigned~long bsiz, unsigned~long off, int shift);<#916#> =2000 to <#3109#> <#3110#>by -Execution time profil. Pc is examined every 20ms, (PC-off)#tex2html_wrap_inline5523#⇧ shift if in range, will increment short in <#3111#>#tex2html_accent_inline5524#<#3111#>.<#3110#><#3109#>

<#3112#>Mathematical Functions<#3112#>

<#3113#>#tex2html_accent_inline5525#<#3113#><#3115#>section<#3115#><#3116#>Mathematical Functions<#3116#><#3117#><#3117#>

#include math.h;SPMgt;

func@star<#919#>double acos(double);<#919#> func@star<#920#>double acosh(double);<#920#> func@star<#921#>double asin(double);<#921#> func@star<#922#>double asinh(double);<#922#> func@star<#923#>double atan(double);<#923#> func@star<#924#>double atan2(double, double);<#924#> func@star<#925#>double atanh(double);<#925#> func@star<#926#>double ceil(double);<#926#> func@star<#927#>double copysign(double, double);<#927#> func@star<#928#>double cos(double);<#928#> func@star<#929#>double cosh(double);<#929#> func@star<#930#>double dabs(double);<#930#> func@star<#931#>double exp(double);<#931#> func@star<#932#>double fabs(double);<#932#> func@star<#933#>double floor(double);<#933#> func@star<#934#>double fmod(double, double);<#934#> func@star<#935#>double frexp(double, int &sstarf#star;);<#935#> func@star<#936#>double ldexp(double, int);<#936#> func@star<#937#>double log(double);<#937#> func@star<#938#>double log10(double);<#938#> func@star<#939#>double modf(double, double &sstarf#star;);<#939#> func@star<#940#>double poly(int, double &sstarf#star;, double);<#940#> func@star<#941#>double pow(double, double);<#941#> func@star<#942#>double rint(double);<#942#> func@star<#943#>double sin(double);<#943#> func@star<#944#>double sinh(double);<#944#> func@star<#945#>double sqrt(double);<#945#> func@star<#946#>double tan(double);<#946#> func@star<#947#>double tanh(double);<#947#>

func@star<#948#>int matherr(struct exception &sstarf#star;);<#948#> func@star<#949#>int pmlcfs(int, int);<#949#> func@star<#950#>int pmlcnt(void);<#950#> func@star<#951#>int pmlerr(int);<#951#> func@star<#952#>int pmllim(int);<#952#> func@star<#953#>int pmlsfs(int, int);<#953#>

<#3118#>GEMDOS Calls via Trap 1<#3118#>

<#3119#>#tex2html_accent_inline5526#<#3119#><#3121#>section<#3121#><#3122#>GEMDOS Calls via Trap 1<#3122#><#3123#><#3123#>

#include osbind.h;SPMgt;

The following assignment is valid by default:

#1##2##3<#3125#>##1;SPMamp;;SPMamp;##2;SPMamp;;SPMamp;##3<#3125#> ;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp;##;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMamp;##;SPMamp; ;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp;##;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMamp;##;SPMamp;;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp;## ;SPMamp;Device;SPMamp;;SPMamp;handle;SPMamp;;SPMamp;;SPMamp; <#958#>


<#958#> ;SPMamp;CON:;SPMamp;;SPMamp;0;SPMamp;;SPMamp;Keyboard;SPMamp; ;SPMamp;CON:;SPMamp;;SPMamp;1;SPMamp;;SPMamp;Screen;SPMamp; ;SPMamp;AUX:;SPMamp;;SPMamp;2;SPMamp;;SPMamp;Serial port;SPMamp; ;SPMamp;PRN:;SPMamp;;SPMamp;3;SPMamp;;SPMamp;Parallel port;SPMamp;

func@star<#971#>long Cauxin();<#971#> =2000 to <#3127#> <#3128#>by -Read character from standart AUX:.<#3128#><#3127#>

func@star<#973#>short Cauxis();<#973#> =2000 to <#3129#> <#3130#>by -Check, if character is available from standart AUX:.<#3130#><#3129#>

func@star<#975#>short Cauxos();<#975#> =2000 to <#3131#> <#3132#>by -Check, if character can be written to standart AUX:.<#3132#><#3131#>

func@star<#977#>void Cauxout(short c);<#977#> =2000 to <#3133#> <#3134#>by -Write character <#3135#>#tex2html_accent_inline5527#<#3135#> to standart AUX:.<#3134#><#3133#>

func@star<#979#>long Cconin();<#979#> =2000 to <#3136#> <#3137#>by -Read a character from standart CON:.<#3137#><#3136#>

func@star<#981#>short Cconis();<#981#> =2000 to <#3138#> <#3139#>by -Check, if character is available from standart CON:.<#3139#><#3138#>

func@star<#983#>short Cconos();<#983#> =2000 to <#3140#> <#3141#>by -Check, if character can be written to standart CON:.<#3141#><#3140#>

func@star<#985#>void Cconout(short c);<#985#> =2000 to <#3142#> <#3143#>by -Write character <#3144#>#tex2html_accent_inline5528#<#3144#> to standart CON:.<#3143#><#3142#>

func@star<#987#>void Cconrs(char &sstarf#star;buf);<#987#> =2000 to <#3145#> <#3146#>by -Read edited data from standart CON:. <#3147#>#tex2html_accent_inline5529#<#3147#> contains number of characters minus 1 to read.<#3146#><#3145#>

func@star<#989#>void Cconws(const~char &sstarf#star;str);<#989#> =2000 to <#3148#> <#3149#>by -Write string <#3150#>#tex2html_accent_inline5530#<#3150#> to standart CON:.<#3149#><#3148#>

func@star<#991#>long Cnecin();<#991#> =2000 to <#3151#> <#3152#>by -Raw input from standart CON: without echoing to screen, but with interpretation of CTRL-S, CRTL-Q and CRTL-C.<#3152#><#3151#>

func@star<#993#>short Cprnos();<#993#> =2000 to <#3153#> <#3154#>by -Check, if character can be written to standart PRN:.<#3154#><#3153#>

func@star<#995#>void Cprnout(short c);<#995#> =2000 to <#3155#> <#3156#>by -Write character <#3157#>#tex2html_accent_inline5531#<#3157#> to standart PRN:.<#3156#><#3155#>

func@star<#997#>long Crawcin();<#997#> =2000 to <#3158#> <#3159#>by -Raw input from standart CON: without echoing to screen.<#3159#><#3158#>

func@star<#999#>long Crawio(short data);<#999#> =2000 to <#3160#> <#3161#>by -Raw I/O to standart CON:. If <#3162#>#tex2html_accent_inline5532#<#3162#> = 0xff read from CON:, otherwise output to CON:.<#3161#><#3160#>

func@star<#1001#>short Dcreate(const~char &sstarf#star;dname);<#1001#> =2000 to <#3163#> <#3164#>by -Create a directory with name <#3165#>#tex2html_accent_inline5533#<#3165#>.<#3164#><#3163#>

func@star<#1003#>long Ddelete(const~char &sstarf#star;dname);<#1003#> =2000 to <#3166#> <#3167#>by -Remove a directory with name <#3168#>#tex2html_accent_inline5534#<#3168#>.<#3167#><#3166#>

func@star<#1005#>long Dfree(DISKINFO &sstarf#star;buf, short drv);<#1005#> =2000 to <#3169#> <#3170#>by -Get available space of drive <#3171#>#tex2html_accent_inline5535#<#3171#> into <#3172#>#tex2html_accent_inline5536#<#3172#>. <#3173#>#tex2html_accent_inline5537#<#3173#> = 0 means current drive.<#3170#><#3169#>

func@star<#1009#>short Dgetdrv();<#1009#> =2000 to <#3174#> <#3175#>by -Get the number of the default drive.<#3175#><#3174#>

func@star<#1011#>long Dgetpath(void &sstarf#star;buf, short drv);<#1011#> =2000 to <#3176#> <#3177#>by -Get the current directory of drive <#3178#>#tex2html_accent_inline5538#<#3178#>. <#3179#>#tex2html_accent_inline5539#<#3179#> = 0 means current drive.<#3177#><#3176#>

func@star<#1014#>long Dsetdrv(short d);<#1014#> =2000 to <#3180#> <#3181#>by -Set the number of the default drive.<#3181#><#3180#>

func@star<#1016#>long Dsetpath(const~char &sstarf#star;path);<#1016#> =2000 to <#3182#> <#3183#>by -Set path for current drive to <#3184#>#tex2html_accent_inline5540#<#3184#>.<#3183#><#3182#>

func@star<#1018#>short Fattrib(const~char &sstarf#star;fname, short rwflag, short attr);<#1018#> =2000 to <#3185#> <#3186#>by -Get (<#3187#>#tex2html_accent_inline5541#<#3187#> = 0) or set (<#3188#>#tex2html_accent_inline5542#<#3188#> = 1) attribute byte of file <#3189#>#tex2html_accent_inline5543#<#3189#>.<#3186#><#3185#>

func@star<#1022#>long Fclose(short handle);<#1022#> =2000 to <#3190#> <#3191#>by -Close the file assosiated with <#3192#>#tex2html_accent_inline5544#<#3192#>.<#3191#><#3190#>

func@star<#1024#>struct~_dta &sstarf#star;Fgetdta();<#1024#> =2000 to <#3193#> <#3194#>by -Get the current disk transfer address.<#3194#><#3193#>

func@star<#1026#>long Fcreate(const~char &sstarf#star;fname, short mode);<#1026#> =2000 to <#3195#> <#3196#>by -Create file <#3197#>#tex2html_accent_inline5545#<#3197#> with mode <#3198#>#tex2html_accent_inline5546#<#3198#>.<#3196#><#3195#>

func@star<#1029#>long Fdatime(DOSTIME &sstarf#star;timeptr, short hdl, short rwflg);<#1029#> =2000 to <#3199#> <#3200#>by -Get (<#3201#>#tex2html_accent_inline5547#<#3201#> = 0) or set (<#3202#>#tex2html_accent_inline5548#<#3202#> = 1) the time structure of the file associated by handle <#3203#>#tex2html_accent_inline5549#<#3203#>.<#3200#><#3199#>

func@star<#1033#>long Fdelete(const~char &sstarf#star;fname);<#1033#> =2000 to <#3204#> <#3205#>by -Delete file with name <#3206#>#tex2html_accent_inline5550#<#3206#>.<#3205#><#3204#>

func@star<#1035#>long Fdup(short handle);<#1035#> =2000 to <#3207#> <#3208#>by -Return a second handle for a standart handle (0…5).<#3208#><#3207#>

func@star<#1037#>long Fforce(short Hstd, short Hnew);<#1037#> =2000 to <#3209#> <#3210#>by -Replace one of the standart handles (0…5) with <#3211#>#tex2html_accent_inline5553#<#3211#>.<#3210#><#3209#>

func@star<#1039#>long Fopen(const~char &sstarf#star;fname, short mode);<#1039#> =2000 to <#3212#> <#3213#>by -Open file <#3214#>#tex2html_accent_inline5554#<#3214#> with mode <#3215#>#tex2html_accent_inline5555#<#3215#>.<#3213#><#3212#>

func@star<#1042#>long Fread(short handle, long cnt, void &sstarf#star;buf);<#1042#> =2000 to <#3216#> <#3217#>by -Read <#3218#>#tex2html_accent_inline5556#<#3218#> bytes into <#3219#>#tex2html_accent_inline5557#<#3219#> from file assosiated with <#3220#>#tex2html_accent_inline5558#<#3220#>.<#3217#><#3216#>

func@star<#1046#>short Frename(const~char &sstarf#star;old, const~char &sstarf#star;new);<#1046#> =2000 to <#3221#> <#3222#>by -Change name of file from <#3223#>#tex2html_accent_inline5559#<#3223#> to <#3224#>#tex2html_accent_inline5560#<#3224#>. Also directories<#3222#><#3221#>

func@star<#1049#>long Fseek(long pos, short handle, short whence);<#1049#> =2000 to <#3225#> <#3226#>by -Set access pointer to position <#3227#>#tex2html_accent_inline5561#<#3227#> relative to <#3228#>#tex2html_accent_inline5562#<#3228#>.<#3226#><#3225#>

func@star<#1052#>void Fsetdta(struct _dta &sstarf#star;ptr);<#1052#> =2000 to <#3229#> <#3230#>by -Set the current disk tranfer address to <#3231#>#tex2html_accent_inline5563#<#3231#>.<#3230#><#3229#>

func@star<#1054#>long Fsfirst(const~char &sstarf#star;filespec, short attr);<#1054#> =2000 to <#3232#> <#3233#>by -Get first directory slot, which matches <#3234#>#tex2html_accent_inline5564#<#3234#> and <#3235#>#tex2html_accent_inline5565#<#3235#>.<#3233#><#3232#>

func@star<#1057#>long Fsnext();<#1057#> =2000 to <#3236#> <#3237#>by -Get next match of search started by <#3238#>#tex2html_accent_inline5566#<#3238#>.<#3237#><#3236#>

func@star<#1059#>long Fwrite(short handle, long cnt, const~void &sstarf#star;buf);<#1059#> =2000 to <#3239#> <#3240#>by -Write <#3241#>#tex2html_accent_inline5567#<#3241#> bytes from <#3242#>#tex2html_accent_inline5568#<#3242#> to file assosiated with <#3243#>#tex2html_accent_inline5569#<#3243#>.<#3240#><#3239#>

func@star<#1063#>long Malloc(long size);<#1063#> =2000 to <#3244#> <#3245#>by -Allocate <#3246#>#tex2html_accent_inline5570#<#3246#> bytes of memory.<#3245#><#3244#>

func@star<#1065#>long Mfree(void &sstarf#star;ptr);<#1065#> =2000 to <#3247#> <#3248#>by -Release block of memory.<#3248#><#3247#>

func@star<#1067#>long Mshrink(long ptr, long size);<#1067#> =2000 to <#3249#> <#3250#>by -Shrink size of memory block obtained by <#3251#>#tex2html_accent_inline5571#<#3251#>.<#3250#><#3249#>

func@star<#2174#>long Pexec(short mode, const~char &sstarf#star;prog, const~char &sstarf#star;tail, char <#1069#>&sstarf#star;&sstarf#star;<#1069#>env);<#2174#> =2000 to <#3252#> <#3253#>by -Execute <#3254#>#tex2html_accent_inline5572#<#3254#> with mode <#3255#>#tex2html_accent_inline5573#<#3255#>. The following bits in the <#3256#>#tex2html_accent_inline5574#<#3256#> of the programm header modify behaviour:<#3253#><#3252#>

= ;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp;##;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMamp;##;SPMamp;;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp;##;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp; Bit;SPMamp;;SPMamp;Meaning <#1075#>


<#1075#> 0;SPMamp;;SPMamp;Fastload bit (clear only BSS) 1;SPMamp;;SPMamp;load into fast ram (TT) 2;SPMamp;;SPMamp;satisfy <#3259#>#tex2html_accent_inline5575#<#3259#>()s from fast ram (TT) 3…27;SPMamp;;SPMamp;reserved 28…31;SPMamp;;SPMamp;TPA size field (TT) <#3260#>

<#3260#>=0em

func@star<#1086#>void Pterm(short rv);<#1086#> =2000 to <#3263#> <#3264#>by -Terminate current process with return value <#3265#>#tex2html_accent_inline5578#<#3265#>.<#3264#><#3263#>

func@star<#1088#>void Pterm0();<#1088#> =2000 to <#3266#> <#3267#>by -Terminate current and return to calling process.<#3267#><#3266#>

func@star<#1090#>void Ptermres(long save, short ret);<#1090#> =2000 to <#3268#> <#3269#>by -Terminate and stay resident, but keep <#3270#>#tex2html_accent_inline5579#<#3270#> bytes of memory.<#3269#><#3268#>

func@star<#1092#>long Super(void &sstarf#star;stack);<#1092#> =2000 to <#3271#> <#3272#>by -Inquire (<#3273#>#tex2html_accent_inline5580#<#3273#> = 1), set (<#3274#>#tex2html_accent_inline5581#<#3274#> = 0) or return from (<#3275#>#tex2html_accent_inline5582#<#3275#> ;SPMgt; 0) supervisor mode.<#3272#><#3271#>

func@star<#1096#>short Sversion();<#1096#> =2000 to <#3276#> <#3277#>by -Get the version number of GEMDOS.<#3277#><#3276#>

func@star<#1098#>short Tgetdate();<#1098#> =2000 to <#3278#> <#3279#>by -Get the GEMDOS internal date. The harware clock is read in MEGA ST's.<#3279#><#3278#>

<#1100#>=The return value is composed of the following fields:

<#1100#>

= ;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp;##;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMamp;##;SPMamp;;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp;##;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp; Bits;SPMamp;;SPMamp;Meaning (Range) <#1103#>


<#1103#> 0…4;SPMamp;;SPMamp;Day (0…31) 5…8;SPMamp;;SPMamp;Month (1…12) 9…15;SPMamp;;SPMamp;Year (0…119)(+1980) <#3282#>

<#3282#>=0em

func@star<#1110#>short Tgettime();<#1110#> =2000 to <#3285#> <#3286#>by -Get the GEMDOS internal time.<#3286#><#3285#>

<#1112#>=The return value is composed of the following fields:

<#1112#>

= ;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp;##;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMamp;##;SPMamp;;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp;##;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp; Bits;SPMamp;;SPMamp;Meaning (Range) <#1115#>


<#1115#> 0…4;SPMamp;;SPMamp;Seconds (0…29) have to be doubled 5…10;SPMamp;;SPMamp;Minutes (0…59) 11…15;SPMamp;;SPMamp;Hours (0…23) <#3289#>

<#3289#>=0em

func@star<#1122#>long Tsetdate(short date);<#1122#> =2000 to <#3292#> <#3293#>by -Set the GEMDOS internal date.<#3293#><#3292#>

func@star<#1124#>long Tsettime(short time);<#1124#> =2000 to <#3294#> <#3295#>by -Set the GEMDOS internal time.<#3295#><#3294#>

<#3296#>GEMDOS Calls unique to the TT<#3296#>

<#3297#>#tex2html_accent_inline5596#<#3297#><#3299#>section<#3299#><#3300#>GEMDOS Calls unique to the TT<#3300#><#3301#><#3301#>

#include osbind.h;SPMgt;

func@star<#1127#>long Maddalt(long start, long size);<#1127#> =2000 to <#3302#> <#3303#>by -Extend the memory, which is managed by <#3304#>#tex2html_accent_inline5597#<#3304#>() and <#3305#>#tex2html_accent_inline5598#<#3305#>() with <#3306#>#tex2html_accent_inline5599#<#3306#> bytes starting at address <#3307#>#tex2html_accent_inline5600#<#3307#>.<#3303#><#3302#>

func@star<#1132#>void &sstarf#star;Mxalloc(long amount, short flag);<#1132#> =2000 to <#3308#> <#3309#>by -Allocate <#3310#>#tex2html_accent_inline5601#<#3310#> bytes of memory from the OS pool. -1 for <#3311#>#tex2html_accent_inline5603#<#3311#> returns the max.~size for an allocatable segment. <#3312#>#tex2html_accent_inline5604#<#3312#> defines were the memory is allocated.<#3309#><#3308#>

= ;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp;##;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMamp;##;SPMamp;;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp;##;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp; Value;SPMamp;;SPMamp;Meaning <#1138#>


<#1138#> 0;SPMamp;;SPMamp;alloc mem <#3315#>#tex2html_accent_inline5605#<#3315#> in ST ram 1;SPMamp;;SPMamp;alloc mem <#3316#>#tex2html_accent_inline5606#<#3316#> in TT ram 2;SPMamp;;SPMamp;alloc mem in ST ram, if possible 3;SPMamp;;SPMamp;alloc mem in TT ram, if possible <#3317#>

<#3317#>=0em

<#3320#>GEMDOS Calls unique to MiNT<#3320#>

<#3321#>#tex2html_accent_inline5607#<#3321#><#3323#>section<#3323#><#3324#>GEMDOS Calls unique to MiNT<#3324#><#3325#><#3325#>

#include mintbind.h;SPMgt;

func@star<#1148#>long Dclosedir(long dir);<#1148#> =2000 to <#3326#> <#3327#>by -Close directory whose handle is <#3328#>#tex2html_accent_inline5608#<#3328#>.<#3327#><#3326#>

func@star<#1150#>LONG Dcntl(word command, char &sstarf#star;fdname, long argument);<#1150#> =2000 to <#3329#> <#3330#>by -Perform a file system specific <#3331#>#tex2html_accent_inline5609#<#3331#> upon file or directory <#3332#>#tex2html_accent_inline5610#<#3332#>. <#3333#>#tex2html_accent_inline5611#<#3333#> depends on <#3334#>#tex2html_accent_inline5612#<#3334#>.<#3330#><#3329#>

func@star<#1155#>int Dlock(short mode, short drive);<#1155#> =2000 to <#3335#> <#3336#>by -Lock (<#3337#>#tex2html_accent_inline5613#<#3337#> = = 1) or unlock (<#3338#>#tex2html_accent_inline5615#<#3338#> = = 0) the BIOS device <#3339#>#tex2html_accent_inline5617#<#3339#>.<#3336#><#3335#>

func@star<#1159#>long Dopendir(char &sstarf#star;dname, word flag);<#1159#> =2000 to <#3340#> <#3341#>by -Open directory <#3342#>#tex2html_accent_inline5618#<#3342#> for reading and return a handle. <#3343#>#tex2html_accent_inline5619#<#3343#> determines mode (<#3344#>#tex2html_accent_inline5620#<#3344#> = = 0 for ``normal'', <#3345#>#tex2html_accent_inline5622#<#3345#> = = 1 for ``compatibility'' mode).<#3341#><#3340#>

func@star<#1164#>LONG Dpathconf(char &sstarf#star;name, WORD which);<#1164#> =2000 to <#3346#> <#3347#>by -Return information about various limits/capabilities of the file system on which file <#3348#>#tex2html_accent_inline5624#<#3348#> is located. The information returned depends upon <#3349#>#tex2html_accent_inline5625#<#3349#> as follows:<#3347#><#3346#>

= ;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp;##;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMamp;##;SPMamp;;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp;##;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp; Value;SPMamp;;SPMamp;Meaning <#1169#>


<#1169#> -1;SPMamp;;SPMamp;max. legal value for <#3352#>#tex2html_accent_inline5627#<#3352#> 0;SPMamp;;SPMamp;int. limit of open files 1;SPMamp;;SPMamp;max. # of links to a file 2;SPMamp;;SPMamp;max. len. of a full pathname 3;SPMamp;;SPMamp;max. len. of an individuell file name 4;SPMamp;;SPMamp;# of bytes written atomically 5;SPMamp;;SPMamp;info about file name truncation <#3353#>

<#3353#>=0em

func@star<#1184#>LONG Dreaddir(word buflen, LONG dirhandle, char &sstarf#star;buf);<#1184#> =2000 to <#3356#> <#3357#>by -Return next entry from directory assosiated with <#3358#>#tex2html_accent_inline5628#<#3358#> in buffer <#3359#>#tex2html_accent_inline5629#<#3359#> with length <#3360#>#tex2html_accent_inline5630#<#3360#>.<#3357#><#3356#>

func@star<#1188#>LONG Drewinddir(LONG dirhandle);<#1188#> =2000 to <#3361#> <#3362#>by -Rewinds the open directory assosiated with <#3363#>#tex2html_accent_inline5631#<#3363#>.<#3362#><#3361#>

func@star<#1190#>LONG Fchmod(char &sstarf#star;fname, WORD mode);<#1190#> =2000 to <#3364#> <#3365#>by -The file access permissions of <#3366#>#tex2html_accent_inline5632#<#3366#> are changed according to <#3367#>#tex2html_accent_inline5633#<#3367#>.<#3365#><#3364#>

func@star<#1193#>LONG Fchown(char &sstarf#star;fname, WORD uid, WORD gid);<#1193#> =2000 to <#3368#> <#3369#>by -The user and group ownership of <#3370#>#tex2html_accent_inline5634#<#3370#> are set to <#3371#>#tex2html_accent_inline5635#<#3371#> and <#3372#>#tex2html_accent_inline5636#<#3372#> respectivly. (TOS file system doesn't support a notion of ownership.<#3369#><#3368#>

func@star<#1197#>WORD Fcntl(WORD fh, LONG arg, WORD cmd);<#1197#> =2000 to <#3373#> <#3374#>by -Do file control commands on file handle <#3375#>#tex2html_accent_inline5637#<#3375#> of an open file. <#3376#>#tex2html_accent_inline5638#<#3376#> and <#3377#>#tex2html_accent_inline5639#<#3377#> vary upon the file type of <#3378#>#tex2html_accent_inline5640#<#3378#> and the operation.<#3374#><#3373#>

func@star<#1202#>LONG Fgetchar(WORD fh, WORD mode);<#1202#> =2000 to <#3379#> <#3380#>by -Read a character from the file assosiated with handle <#3381#>#tex2html_accent_inline5641#<#3381#>. <#3382#>#tex2html_accent_inline5642#<#3382#> determines mode (cooked, raw, echo).<#3380#><#3379#>

func@star<#1205#>LONG Finstat(WORD fh);<#1205#> =2000 to <#3383#> <#3384#>by -Return the number of characters available for reading from file handle <#3385#>#tex2html_accent_inline5643#<#3385#>.<#3384#><#3383#>

func@star<#1207#>LONG Flink(char &sstarf#star;oldname, char &sstarf#star;newname);<#1207#> =2000 to <#3386#> <#3387#>by -The file name <#3388#>#tex2html_accent_inline5644#<#3388#> (a ``hard link'') for the file currently named <#3389#>#tex2html_accent_inline5645#<#3389#> is created. (The TOS file system doesn't support links.)<#3387#><#3386#>

func@star<#1210#>LONG Fmidipipe(WORD pid, WORD in, WORD out);<#1210#> =2000 to <#3390#> <#3391#>by -Changes the GEMDOS Midi input and output handles for process with id <#3392#>#tex2html_accent_inline5646#<#3392#> to <#3393#>#tex2html_accent_inline5647#<#3393#> and <#3394#>#tex2html_accent_inline5648#<#3394#> .<#3391#><#3390#>

func@star<#1214#>LONG Foutstat(WORD fh);<#1214#> =2000 to <#3395#> <#3396#>by -Return the number of bytes, that may be written to file handle <#3397#>#tex2html_accent_inline5649#<#3397#> without blocking.<#3396#><#3395#>

func@star<#1216#>WORD Fpipe(WORD usrh[2]);<#1216#> =2000 to <#3398#> <#3399#>by -Create a pipe. <#3400#>#tex2html_accent_inline5650#<#3400#> is the read-only end and <#3401#>#tex2html_accent_inline5651#<#3401#> the write-only end file handle of the pipe.<#3399#><#3398#>

func@star<#1219#>LONG Fputchar(WORD fh, LONG ch, WORD mode);<#1219#> =2000 to <#3402#> <#3403#>by -Write a character to the file whose handle is <#3404#>#tex2html_accent_inline5652#<#3404#>. <#3405#>#tex2html_accent_inline5653#<#3405#> is as for <#3406#>#tex2html_accent_inline5654#<#3406#>.<#3403#><#3402#>

func@star<#1223#>LONG Freadlink(WORD bufsiz, char *buf, char *lname);<#1223#> =2000 to <#3407#> <#3408#>by -Returns in the buffer <#3409#>#tex2html_accent_inline5655#<#3409#> of size <#3410#>#tex2html_accent_inline5656#<#3410#> the file name the symbolic link <#3411#>#tex2html_accent_inline5657#<#3411#> points to. (The TOS file system doesn't support symbolic links.)<#3408#><#3407#>

func@star<#1227#>WORD Fselect(unsigned~WORD timeout, LONG &sstarf#star;rfds, LONG &sstarf#star;wfds, ((long) 0));<#1227#> =2000 to <#3412#> <#3413#>by -Select file descriptors, that are ready for reading or writing. <#3414#>#tex2html_accent_inline5658#<#3414#> is the number of milliseconds to wait before returning. A bit in one of the <#3415#>#tex2html_accent_inline5659#<#3415#> bitmaps, which is on, indicates the file descriptor to be tested.<#3413#><#3412#>

func@star<#1230#>LONG Fsymlink(char &sstarf#star;oldname, char &sstarf#star;newname);<#1230#> =2000 to <#3416#> <#3417#>by -The file name <#3418#>#tex2html_accent_inline5660#<#3418#> (a ``soft link'') for the file currently named <#3419#>#tex2html_accent_inline5661#<#3419#> is created. (The TOS file system doesn't support symbolic links.)<#3417#><#3416#>

func@star<#1233#>LONG Fxattr(WORD flag, char &sstarf#star;fname, XATTR &sstarf#star;xattr);<#1233#> =2000 to <#3420#> <#3421#>by -For the file <#3422#>#tex2html_accent_inline5662#<#3422#>, the file attributes are obtained and stored in <#3423#>#tex2html_accent_inline5663#<#3423#>. If <#3424#>#tex2html_accent_inline5664#<#3424#> = = 0 a symbolic link is resolved, otherwise (<#3425#>#tex2html_accent_inline5666#<#3425#> = = 1) the info is for the symbolic link itself.<#3421#><#3420#>

func@star<#1238#>void Pause();<#1238#> =2000 to <#3426#> <#3427#>by -Suspend the process until it receives a signal that is not being ignored and is not masked.<#3427#><#3426#>

func@star<#1240#>WORD Pdomain(WORD newdom);<#1240#> =2000 to <#3428#> <#3429#>by -If <#3430#>#tex2html_accent_inline5668#<#3430#> is not -1, sets the process domain of the current process to <#3431#>#tex2html_accent_inline5670#<#3431#>. Alway returns previous domain. Domain 0 is the TOS domain and the default; domain 1 is the MiNT domain.<#3429#><#3428#>

func@star<#1243#>LONG Pfork();<#1243#> =2000 to <#3432#> <#3433#>by -Create a new process, that is the duplicate of the current one, but has its own copy of the address space. The return value is 0 for the child, and the child's pid in the parent.<#3433#><#3432#>

func@star<#1245#>WORD Pgetegid();<#1245#> func@star<#1246#>WORD Pgeteuid();<#1246#> =2000 to <#3434#> <#3435#>by -Return the effective groud or user id's.<#3435#><#3434#>

func@star<#1248#>WORD Pgetgid();<#1248#> func@star<#1249#>WORD Psetgid(WORD id);<#1249#> =2000 to <#3436#> <#3437#>by -Get or set the group id of the current process.<#3437#><#3436#>

func@star<#1251#>WORD Pgetpid();<#1251#> func@star<#1252#>WORD Pgetppid();<#1252#> func@star<#1253#>WORD Pgetpgrp();<#1253#> =2000 to <#3438#> <#3439#>by -Get the currents process' process id, it's parent's process id, or its process group.<#3439#><#3438#>

func@star<#1255#>WORD Pgetuid();<#1255#> func@star<#1256#>WORD Psetuid(WORD id);<#1256#> =2000 to <#3440#> <#3441#>by -Return or set the user id under which the current process is running.<#3441#><#3440#>

func@star<#1258#>WORD Pkill(WORD pid, WORD sig);<#1258#> =2000 to <#3442#> <#3443#>by -Send signal <#3444#>#tex2html_accent_inline5671#<#3444#> to process with given <#3445#>#tex2html_accent_inline5672#<#3445#>. If <#3446#>#tex2html_accent_inline5673#<#3446#>= = 0, the signal is sent to all proc's with the same process group.<#3443#><#3442#>

func@star<#1262#>LONG Pmsg(WORD mode, LONG mbox, void &sstarf#star;msg);<#1262#>

func@star<#1263#>WORD Pnice(WORD delta);<#1263#>

func@star<#1264#>WORD Prenice( word pid, word delta);<#1264#>

func@star<#1265#>void Prusage(LONG rsp[8]);<#1265#> =2000 to <#3447#> <#3448#>by -Get various resource information from the operating system.<#3448#><#3447#>

= ;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp;##;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMamp;##;SPMamp;;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp;##;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp; Value;SPMamp;;SPMamp;Meaning <#1269#>


<#1269#> r[0];SPMamp;;SPMamp;time spent in MiNT kernel r[1];SPMamp;;SPMamp;time spent in proc's own code r[2];SPMamp;;SPMamp;tot. kernel time for children r[3];SPMamp;;SPMamp;tot. user code time for children r[4];SPMamp;;SPMamp;memory alloc. for this proc. r[5]-r[7];SPMamp;;SPMamp;reserved <#3451#>

<#3451#>=0em

func@star<#1282#>Psemaphore(short mode, long id, long tmout);<#1282#>

func@star<#1283#>LONG Psetlimit(WORD lim, LONG val);<#1283#> =2000 to <#3454#> <#3455#>by -Get/Set a resource limit for a process. The old limit is returned. If <#3456#>#tex2html_accent_inline5675#<#3456#> is negativ, the limit is unchanged; 0 sets umlimited resource; any other value sets that limit. <#3457#>#tex2html_accent_inline5676#<#3457#> is defined as follows:<#3455#><#3454#>

= ;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp;##;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMamp;##;SPMamp;;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp;##;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp; Value;SPMamp;;SPMamp;Meaning <#1288#>


<#1288#> 1;SPMamp;;SPMamp;max. CPU for proc in milliseconds 2;SPMamp;;SPMamp;max. memory allowed for proc. 3;SPMamp;;SPMamp;limit of <#3460#>#tex2html_accent_inline5677#<#3460#>()'ed mem. for proc. <#3461#>

<#3461#>=0em

func@star<#1295#>Psigaction(short sig, long action, long oldaction);<#1295#>

func@star<#1296#>WORD Psetpgrp(WORD pid, WORD newgrp);<#1296#> =2000 to <#3464#> <#3465#>by -Set the process group of the process with given <#3466#>#tex2html_accent_inline5678#<#3466#> to <#3467#>#tex2html_accent_inline5679#<#3467#>.<#3465#><#3464#>

func@star<#1299#>LONG Psigblock(unsigned~LONG mask);<#1299#> =2000 to <#3468#> <#3469#>by -Adds the signal in the 32 bit <#3470#>#tex2html_accent_inline5680#<#3470#> to the blocked set. The return value is the set of previously blocked signals. (Usage: <#3471#>#tex2html_accent_inline5681#<#3471#>(1 ;SPMlt; ;SPMlt; SIG#))<#3469#><#3468#>

func@star<#1302#>LONG Psignal(WORD signal, (void)(&sstarf#star;handler)(LONG sig);<#1302#> =2000 to <#3472#> <#3473#>by -Installs a signal handler for the indicated <#3474#>#tex2html_accent_inline5683#<#3474#>. <#3475#>#tex2html_accent_inline5684#<#3475#> is the address of a function, that will be called, when the signal occurs.<#3473#><#3472#>

func@star<#1305#>LONG Psigpending();<#1305#> =2000 to <#3476#> <#3477#>by -Return a longword containing the signals, that have been sent to the process, but not yet handled.<#3477#><#3476#>

func@star<#1307#>LONG Psigreturn();<#1307#> =2000 to <#3478#> <#3479#>by -Prepare to exit from a signal handler. (only needed with <#3480#>#tex2html_accent_inline5685#<#3480#>())<#3479#><#3478#>

func@star<#1309#>LONG Psigsetmask(unsigned~LONG mask);<#1309#> =2000 to <#3481#> <#3482#>by -Replaces the set of blocked signals with <#3483#>#tex2html_accent_inline5686#<#3483#>. The old set of blocked signals is returned.<#3482#><#3481#>

func@star<#1311#>Pumask(short mask);<#1311#>

func@star<#1312#>LONG Pusrval(LONG arg);<#1312#> =2000 to <#3484#> <#3485#>by -Return the process specific user value for this process.<#3485#><#3484#>

func@star<#1314#>WORD Pvfork();<#1314#> =2000 to <#3486#> <#3487#>by -Creates a copy of the current process. Both child and parent share the same address space. The return value is 0 for the child, and the child's pid in the parent.<#3487#><#3486#>

func@star<#1316#>LONG Pwait();<#1316#> =2000 to <#3488#> <#3489#>by -Return the exit status of the children run asyncronously.<#3489#><#3488#>

func@star<#1318#>LONG Pwait3(WORD flag, LONG &sstarf#star;rusage);<#1318#> =2000 to <#3490#> <#3491#>by -Wait for a child and return its exit status. If <#3492#>#tex2html_accent_inline5687#<#3492#> is non zero, <#3493#>#tex2html_accent_inline5688#<#3493#>[0] contains millisec's spend by child in user space and <#3494#>#tex2html_accent_inline5689#<#3494#>[1] contains millisec's spent by child in kernel space.<#3491#><#3490#>

func@star<#1322#>WORD Syield();<#1322#> =2000 to <#3495#> <#3496#>by -Tell MiNT, that is okay to switch processes right now. Always returns 0.<#3496#><#3495#>

func@star<#1324#>LONG Sysconf(WORD n);<#1324#> =2000 to <#3497#> <#3498#>by -Return information about various limits/capabilities of the current version of MiNT. Possible values for <#3499#>#tex2html_accent_inline5690#<#3499#> are:<#3498#><#3497#>

= ;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp;##;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMamp;##;SPMamp;;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp;##;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp; Value;SPMamp;;SPMamp;Meaning <#1328#>


<#1328#> -1;SPMamp;;SPMamp;max. legal value for <#3502#>#tex2html_accent_inline5692#<#3502#> 0;SPMamp;;SPMamp;max. # of mem. regions per proc. 1;SPMamp;;SPMamp;max. len. of Pexec command line 2;SPMamp;;SPMamp;max. # of open files per proc. 3;SPMamp;;SPMamp;# of suppl. group id's 4;SPMamp;;SPMamp;# of procs per user <#3503#>

<#3503#>=0em

func@star<#1341#>LONG Talarm(LONG sec);<#1341#> =2000 to <#3506#> <#3507#>by -Set an alarm to go off <#3508#>#tex2html_accent_inline5693#<#3508#> from now. If <#3509#>#tex2html_accent_inline5694#<#3509#> cancel any pending alarm.<#3507#><#3506#>

<#3510#>BIOS Calls via Trap 13<#3510#>

<#3511#>#tex2html_accent_inline5695#<#3511#><#3513#>section<#3513#><#3514#>BIOS Calls via Trap 13<#3514#><#3515#><#3515#>

#include osbind.h;SPMgt;

Available devices for BIOS calls are:

#1##2##3<#3517#>##1;SPMamp;;SPMamp;##2;SPMamp;;SPMamp;##3<#3517#> ;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp;##;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMamp;##;SPMamp; ;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp;##;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMamp;##;SPMamp;;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp;## ;SPMamp;Device;SPMamp;;SPMamp;#;SPMamp;;SPMamp;;SPMamp; <#1348#>


<#1348#> ;SPMamp;_PRT;SPMamp;;SPMamp;0;SPMamp;;SPMamp;parallel port;SPMamp; ;SPMamp;_AUX;SPMamp;;SPMamp;1;SPMamp;;SPMamp;serial port;SPMamp; ;SPMamp;_CON;SPMamp;;SPMamp;2;SPMamp;;SPMamp;console;SPMamp; ;SPMamp;_MIDI;SPMamp;;SPMamp;3;SPMamp;;SPMamp;MIDI port;SPMamp; ;SPMamp;_IKBD;SPMamp;;SPMamp;4;SPMamp;;SPMamp;keyboard processor;SPMamp; ;SPMamp;_RAWCON;SPMamp;;SPMamp;5;SPMamp;;SPMamp;console (no terminal emulation);SPMamp;

func@star<#1367#>long Bconin(short dev);<#1367#> =2000 to <#3519#> <#3520#>by -Read a character from device <#3521#>#tex2html_accent_inline5696#<#3521#>. (Allowed devices: 0…3<#3520#><#3519#>

func@star<#1369#>void Bconout(short dev, short c);<#1369#> =2000 to <#3522#> <#3523#>by -Write character <#3524#>#tex2html_accent_inline5698#<#3524#> to device <#3525#>#tex2html_accent_inline5699#<#3525#>. (Allowed devices: 0…5)<#3523#><#3522#>

func@star<#1372#>short Bconstat(short dev);<#1372#> =2000 to <#3526#> <#3527#>by -Get the status of the input device <#3528#>#tex2html_accent_inline5701#<#3528#>. (Allowed devices: 1…3).<#3527#><#3526#>

func@star<#1374#>short Bcostat(short dev);<#1374#> =2000 to <#3529#> <#3530#>by -Get the status of the output device <#3531#>#tex2html_accent_inline5703#<#3531#>. (Allowed devices: 0…4)<#3530#><#3529#>

func@star<#1376#>long Drvmap();<#1376#> =2000 to <#3532#> <#3533#>by -Get the bitmap of available drives.<#3533#><#3532#>

func@star<#1378#>BPB &sstarf#star;Getbpb(short dev);<#1378#> =2000 to <#3534#> <#3535#>by -Get the BIOS parameter block of device <#3536#>#tex2html_accent_inline5705#<#3536#>.<#3535#><#3534#>

func@star<#1380#>void Getmpb(void &sstarf#star;ptr);<#1380#> =2000 to <#3537#> <#3538#>by -The memory parameter block pointed to by <#3539#>#tex2html_accent_inline5706#<#3539#> is filled.<#3538#><#3537#>

func@star<#1382#>long Kbshift(short mode);<#1382#> =2000 to <#3540#> <#3541#>by -Get (<#3542#>#tex2html_accent_inline5707#<#3542#> = -1) or set the current keyboard status.<#3541#><#3540#>

<#1384#>=The return value is composed of the following fields:

<#1384#>

= ;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp;##;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMamp;##;SPMamp;;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp;##;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp; Bit;SPMamp;;SPMamp;Meaning <#1387#>


<#1387#> 0;SPMamp;;SPMamp;Right shift key 1;SPMamp;;SPMamp;Left shift key 2;SPMamp;;SPMamp;Control key 3;SPMamp;;SPMamp;Alternate key 4;SPMamp;;SPMamp;Caps lock key 5;SPMamp;;SPMamp;r. mouse button (ClrHome) 6;SPMamp;;SPMamp;l. mouse button (Insert) 7;SPMamp;;SPMamp;Reserved (0) <#3545#>

<#3545#>=0em

func@star<#1404#>short Mediach(short dev);<#1404#> =2000 to <#3548#> <#3549#>by -Check, if disk in device <#3550#>#tex2html_accent_inline5708#<#3550#> has changed.<#3549#><#3548#>

func@star<#1406#>short Rwabs(short rwflag, long buf, short n, short sector, short dev);<#1406#> =2000 to <#3551#> <#3552#>by -Read (<#3553#>#tex2html_accent_inline5709#<#3553#> = 0) or write (<#3554#>#tex2html_accent_inline5710#<#3554#> = 1) <#3555#>#tex2html_accent_inline5711#<#3555#> logical sectors from device <#3556#>#tex2html_accent_inline5712#<#3556#>.<#3552#><#3551#>

func@star<#1411#>void~(&sstarf#star;)(void) Setexc(short vecnum, long vecptr);<#1411#> =2000 to <#3557#> <#3558#>by -Get (vecptr = -1) or set an M68000 exception vector.<#3558#><#3557#>

func@star<#1413#>long Tickcal();<#1413#> =2000 to <#3559#> <#3560#>by -Get the number of milliseconds between two calls of <#3561#>#tex2html_accent_inline5713#<#3561#>.<#3560#><#3559#>

<#3562#>XBIOS Calls via Trap 14<#3562#>

<#3563#>#tex2html_accent_inline5714#<#3563#><#3565#>section<#3565#><#3566#>XBIOS Calls via Trap 14<#3566#><#3567#><#3567#>

#include osbind.h;SPMgt;

func@star<#1416#>void Bioskeys();<#1416#> =2000 to <#3568#> <#3569#>by -Reset to initial keyboard mapping tables.<#3569#><#3568#>

func@star<#1418#>short Blitmode(short flag);<#1418#> =2000 to <#3570#> <#3571#>by -Configure the blitter chip.<#3571#><#3570#>

func@star<#1420#>short Cursconf(short rate, short attr);<#1420#> =2000 to <#3572#> <#3573#>by -Configure the cursor and blinking speed.<#3573#><#3572#>

func@star<#1422#>void Dosound(void &sstarf#star;ptr);<#1422#> =2000 to <#3574#> <#3575#>by -Output a number of bytes to the soundchip.<#3575#><#3574#>

func@star<#1424#>short Floprd(void &sstarf#star;buf, long filler, short drv, short sect, short trk, short side, short n);<#1424#> =2000 to <#3576#> <#3577#>by -Read physically <#3578#>#tex2html_accent_inline5715#<#3578#> sectors from floppy drive <#3579#>#tex2html_accent_inline5716#<#3579#>.<#3577#><#3576#>

func@star<#1427#>short Flopwr(void &sstarf#star;buf, long filler, short drv, short sect, short trk, short side, short n);<#1427#> =2000 to <#3580#> <#3581#>by -Write physically <#3582#>#tex2html_accent_inline5717#<#3582#> sectors to floppy drive <#3583#>#tex2html_accent_inline5718#<#3583#>.<#3581#><#3580#>

func@star<#1430#>short Flopfmt(void &sstarf#star;buf, long filler, short drv, short spt, short trk, short side, short i, long m, short v);<#1430#> =2000 to <#3584#> <#3585#>by -Format track <#3586#>#tex2html_accent_inline5719#<#3586#> on drive <#3587#>#tex2html_accent_inline5720#<#3587#> with <#3588#>#tex2html_accent_inline5721#<#3588#> sectors per track.<#3585#><#3584#>

func@star<#1434#>short Flopver(void &sstarf#star;buf, long filler, short drv, short spt, short trk, short side, short n);<#1434#> =2000 to <#3589#> <#3590#>by -Read a number of sectors and compare with memory.<#3590#><#3589#>

func@star<#1436#>short Getrez();<#1436#> =2000 to <#3591#> <#3592#>by -Get the current display resolution (0 = low, 1 = mid, 2 = high).<#3592#><#3591#>

func@star<#1438#>long Gettime();<#1438#> =2000 to <#3593#> <#3594#>by -Get the time from the hardware clock (lower word = time, upper word = date).<#3594#><#3593#>

func@star<#1440#>short Giaccess(short data, short reg);<#1440#> =2000 to <#3595#> <#3596#>by -Get or set a register of the GI sound chip. Set bit 8 of <#3597#>#tex2html_accent_inline5722#<#3597#> for write operation.<#3596#><#3595#>

func@star<#1442#>void Ikbdws(short cnt, void &sstarf#star;ptr);<#1442#> =2000 to <#3598#> <#3599#>by -Write a sequence of <#3600#>#tex2html_accent_inline5723#<#3600#>+1 bytes to the keyboard processor.<#3599#><#3598#>

func@star<#1444#>void Initmous(short type, void &sstarf#star;param, void &sstarf#star;vptr);<#1444#> =2000 to <#3601#> <#3602#>by -Initialize the mouse cursor routines.<#3602#><#3601#>

func@star<#1446#>IOREC &sstarf#star;Iorec(short ioDEV);<#1446#> =2000 to <#3603#> <#3604#>by -Get a pointer to a device specific buffer.<#3604#><#3603#>

func@star<#1448#>void Jdisint(short vnum);<#1448#> =2000 to <#3605#> <#3606#>by -Disable interrupt <#3607#>#tex2html_accent_inline5724#<#3607#> of the MFP 68901 chip.<#3606#><#3605#>

func@star<#1450#>void Jenabint(short vnum);<#1450#> =2000 to <#3608#> <#3609#>by -Enable interrupt <#3610#>#tex2html_accent_inline5725#<#3610#> of the MFP 68901 chip.<#3609#><#3608#>

func@star<#1452#>KBDVECS &sstarf#star;Kbdvbase();<#1452#> =2000 to <#3611#> <#3612#>by -Get a pointer to the KBDVECS structure.<#3612#><#3611#>

func@star<#1454#>short Kbrate(short delay, short reprate);<#1454#> =2000 to <#3613#> <#3614#>by -Get or set keyboard repeat rate.<#3614#><#3613#>

func@star<#1456#>KEYTAB &sstarf#star;Keytbl(void &sstarf#star;nrml, void &sstarf#star;shft, void &sstarf#star;caps);<#1456#> =2000 to <#3615#> <#3616#>by -Set the addresses of the keyboard mapping tables (-1 = don't change).<#3616#><#3615#>

func@star<#1458#>void &sstarf#star;Logbase();<#1458#> =2000 to <#3617#> <#3618#>by -Get the start address of the logical display memory.<#3618#><#3617#>

func@star<#1460#>void Mfpint(short vnum, void &sstarf#star;vptr);<#1460#> =2000 to <#3619#> <#3620#>by -Set the interrupt vectors of the MFP 68901 chip.<#3620#><#3619#>

func@star<#1462#>void Midiws(short cnt, void &sstarf#star;ptr);<#1462#> =2000 to <#3621#> <#3622#>by -Write a sequence of <#3623#>#tex2html_accent_inline5726#<#3623#>+1 bytes to the MIDI-port.<#3622#><#3621#>

func@star<#1464#>void Offgibit(short ormask);<#1464#> =2000 to <#3624#> <#3625#>by -Clear a bit in ``PORT A'' register of the GI chip.<#3625#><#3624#>

func@star<#1466#>void Ongibit(short andmask);<#1466#> =2000 to <#3626#> <#3627#>by -Set a bit in ``PORT A'' register of the GI chip.<#3627#><#3626#>

func@star<#1468#>void &sstarf#star;Physbase();<#1468#> =2000 to <#3628#> <#3629#>by -Get the start address of the physical display memory.<#3629#><#3628#>

func@star<#1470#>void Protobt(void &sstarf#star;buf, long serial, short dsktyp, short exec);<#1470#> =2000 to <#3630#> <#3631#>by -Create a boot sector in memory.<#3631#><#3630#>

func@star<#1472#>void Prtblk(void &sstarf#star;pblkptr);<#1472#> =2000 to <#3632#> <#3633#>by -Special hardcopy routine, not unlike the <#3634#>#tex2html_accent_inline5727#<#3634#> routine.<#3633#><#3632#>

func@star<#1474#>long Random();<#1474#> =2000 to <#3635#> <#3636#>by -Get a 24 bit random number.<#3636#><#3635#>

func@star<#1476#>long Rsconf(short baud, short flow, short uc, short rs, short ts, short sc);<#1476#> =2000 to <#3637#> <#3638#>by -Set the communication parameters for the serial port. The return value is the current configuration of the four register of the UART.<#3638#><#3637#>

func@star<#1478#>void Scrdmp();<#1478#> =2000 to <#3639#> <#3640#>by -Dump the current screen to the printer.<#3640#><#3639#>

func@star<#1480#>short Setcolor(short colornum, short color);<#1480#> =2000 to <#3641#> <#3642#>by -Get (<#3643#>#tex2html_accent_inline5728#<#3643#> = -1) or set contents of color register.<#3642#><#3641#>

func@star<#1482#>void Setpalette(void &sstarf#star;palptr);<#1482#> =2000 to <#3644#> <#3645#>by -Set the color palette of the video hardware.<#3645#><#3644#>

func@star<#1484#>short Setprt(short config);<#1484#> =2000 to <#3646#> <#3647#>by -Get or set the current printer configuration.<#3647#><#3646#>

<#1486#>=The bits of the return value are assigned as follows:

<#1486#>

= #1##2##3<#3649#>##1;SPMamp;;SPMamp;##2;SPMamp;;SPMamp;##3<#3649#> ;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp;##;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMamp;##;SPMamp; ;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp;##;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMamp;##;SPMamp;;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp;## ;SPMamp;Bit;SPMamp;;SPMamp;Off;SPMamp;;SPMamp;On;SPMamp; <#1490#>


<#1490#> ;SPMamp;0;SPMamp;;SPMamp;Matrix-;SPMamp;;SPMamp;Daisy Wheel printer;SPMamp; ;SPMamp;1;SPMamp;;SPMamp;color;SPMamp;;SPMamp;monochrom;SPMamp; ;SPMamp;2;SPMamp;;SPMamp;Atari-;SPMamp;;SPMamp;Epson printer;SPMamp; ;SPMamp;3;SPMamp;;SPMamp;Draft-;SPMamp;;SPMamp;High quality;SPMamp; ;SPMamp;4;SPMamp;;SPMamp;Centronics-;SPMamp;;SPMamp;RS232 interface;SPMamp; ;SPMamp;5;SPMamp;;SPMamp;Endless;SPMamp;;SPMamp;Single sheet paper;SPMamp; =0em

func@star<#1509#>void Setscreen(void &sstarf#star;lscrn, void &sstarf#star;pscrn, short rez);<#1509#> =2000 to <#3651#> <#3652#>by -Set the logical and physical display memory start address and the current screen resolution.<#3652#><#3651#>

func@star<#1511#>void Settime(long time_date);<#1511#> =2000 to <#3653#> <#3654#>by -Set the hardware clock to <#3655#>#tex2html_accent_inline5729#<#3655#>(lower word = time, upper word = date.<#3654#><#3653#>

func@star<#1513#>void &sstarf#star;Ssbrk(short size);<#1513#> =2000 to <#3656#> <#3657#>by -Reserve <#3658#>#tex2html_accent_inline5730#<#3658#> bytes at the end of the physical memory (Dummy routine in all TOS versions).<#3657#><#3656#>

func@star<#1515#>long Supexec(void &sstarf#star;funcptr);<#1515#> =2000 to <#3659#> <#3660#>by -Execute a subroutine in supervisor mode.<#3660#><#3659#>

func@star<#1517#>void Vsync();<#1517#> =2000 to <#3661#> <#3662#>by -Wait until the verical blank interrupt has bitten.<#3662#><#3661#>

func@star<#1519#>void Xbtimer(short timer, short ctrl, long data, void &sstarf#star;vptr);<#1519#> =2000 to <#3663#> <#3664#>by -Set and start the MFP 68901 timer.<#3664#><#3663#>

<#3665#>XBIOS Calls unique to the TT<#3665#>

<#3666#>#tex2html_accent_inline5731#<#3666#><#3668#>section<#3668#><#3669#>XBIOS Calls unique to the TT<#3669#><#3670#><#3670#>

I don't have more information about this calls at the moment. Can someone please enlighten me.

#include osbind.h;SPMgt;

func@star<#1522#>long Bconctl(short opcode, long operand);<#1522#> =2000 to <#3671#> <#3672#>by -<#3672#><#3671#>

func@star<#1524#>long Bconmap(short dev);<#1524#> =2000 to <#3673#> <#3674#>by -<#3674#><#3673#>

func@star<#1526#>void EgetPalette(short start, short count, word *palptr);<#1526#> =2000 to <#3675#> <#3676#>by -Read parts or the complete TT color palette. Starting at register <#3677#>#tex2html_accent_inline5732#<#3677#>, <#3678#>#tex2html_accent_inline5733#<#3678#> words are transfered to the word field <#3679#>#tex2html_accent_inline5734#<#3679#>.<#3676#><#3675#>

func@star<#1530#>short EgetShift();<#1530#> =2000 to <#3680#> <#3681#>by -Get the current contents of the videoshifter control register.<#3681#><#3680#>

func@star<#1532#>short EsetBank(short bank);<#1532#> =2000 to <#3682#> <#3683#>by -Immediatly activate one of the 16 TT color banks and copy the values to the ST(E) compatible color register.<#3683#><#3682#>

func@star<#1534#>short EsetColor(short num, short val);<#1534#> =2000 to <#3684#> <#3685#>by -Set color register <#3686#>#tex2html_accent_inline5735#<#3686#> to the value <#3687#>#tex2html_accent_inline5736#<#3687#>. If <#3688#>#tex2html_accent_inline5737#<#3688#>= = - 1 the current value is returned.<#3685#><#3684#>

func@star<#1538#>short EsetGray( short mode);<#1538#> =2000 to <#3689#> <#3690#>by -Switch between color (<#3691#>#tex2html_accent_inline5739#<#3691#> = = 0) and gray scale presentation.<#3690#><#3689#>

func@star<#1540#>void EsetPalette(short start, short count, word *palptr);<#1540#> =2000 to <#3692#> <#3693#>by -Change parts or the complete TT color palette. From the word field <#3694#>#tex2html_accent_inline5741#<#3694#> <#3695#>#tex2html_accent_inline5742#<#3695#> color register are set, starting at register <#3696#>#tex2html_accent_inline5743#<#3696#>.<#3693#><#3692#>

func@star<#1544#>void EsetShift(short mode);<#1544#> =2000 to <#3697#> <#3698#>by -Set the videoshift control register and return the previous contents.<#3698#><#3697#>

func@star<#1546#>short EsetSmear(short mode);<#1546#> =2000 to <#3699#> <#3700#>by -If <#3701#>#tex2html_accent_inline5744#<#3701#>≠ 0, the sample hold/smear mode is switched on.<#3700#><#3699#>

<#3702#>LineA Calls<#3702#>

<#3703#>#tex2html_accent_inline5746#<#3703#><#3705#>section<#3705#><#3706#>LineA Calls<#3706#><#3707#><#3707#>

#include linea.h;SPMgt;

func@star<#1549#>void linea0();<#1549#> =2000 to <#3708#> <#3709#>by -Initialize lineA.<#3709#><#3708#>

func@star<#1551#>void linea1();<#1551#> =2000 to <#3710#> <#3711#>by -Put pixel.<#3711#><#3710#>

func@star<#1553#>int linea2();<#1553#> =2000 to <#3712#> <#3713#>by -Get pixel.<#3713#><#3712#>

func@star<#1555#>void linea3();<#1555#> =2000 to <#3714#> <#3715#>by -Draw line.<#3715#><#3714#>

func@star<#1557#>void linea4();<#1557#> =2000 to <#3716#> <#3717#>by -Horizontal line.<#3717#><#3716#>

func@star<#1559#>void linea5();<#1559#> =2000 to <#3718#> <#3719#>by -Draw rectangle.<#3719#><#3718#>

func@star<#1561#>void linea6();<#1561#> =2000 to <#3720#> <#3721#>by -Filled polygon.<#3721#><#3720#>

func@star<#1563#>void linea7(BBPB &sstarf#star;ptr);<#1563#> =2000 to <#3722#> <#3723#>by -Bit blit.<#3723#><#3722#>

func@star<#1565#>void linea8();<#1565#> =2000 to <#3724#> <#3725#>by -Text blit.<#3725#><#3724#>

func@star<#1567#>void linea9();<#1567#> =2000 to <#3726#> <#3727#>by -Show mouse.<#3727#><#3726#>

func@star<#1569#>void lineaa();<#1569#> =2000 to <#3728#> <#3729#>by -Hide mouse.<#3729#><#3728#>

func@star<#1571#>void lineab();<#1571#> =2000 to <#3730#> <#3731#>by -Mouse form.<#3731#><#3730#>

func@star<#1573#>void lineac(void &sstarf#star;ptr);<#1573#> =2000 to <#3732#> <#3733#>by -Undraw sprite.<#3733#><#3732#>

func@star<#1575#>void linead(int x, int y, SFORM &sstarf#star;sprite, void &sstarf#star;ptr);<#1575#> =2000 to <#3734#> <#3735#>by -Draw sprite.<#3735#><#3734#>

func@star<#1577#>void lineae();<#1577#> =2000 to <#3736#> <#3737#>by -Copy raster.<#3737#><#3736#>

func@star<#1579#>void lineaf();<#1579#> =2000 to <#3738#> <#3739#>by -Seed fill.<#3739#><#3738#>

<#3740#>VT52 Escape Seqences<#3740#>

<#3741#>#tex2html_accent_inline5747#<#3741#><#3743#>section<#3743#><#3744#>VT52 Escape Seqences<#3744#><#3745#><#3745#>

#include vt52.h;SPMgt;

#1##2##3<#3747#>##1;SPMamp;;SPMamp;##2;SPMamp;;SPMamp;##3<#3747#> ;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp;##;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMamp;##;SPMamp; ;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp;##;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMamp;##;SPMamp;;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp;## ;SPMamp;Mnemonic;SPMamp;;SPMamp;Sequence;SPMamp;;SPMamp;Meaning;SPMamp; <#1585#>


<#1585#> ;SPMamp;C_UP;SPMamp;;SPMamp;ESC A;SPMamp;;SPMamp;cur. one line up;SPMamp; ;SPMamp;C_DOWN;SPMamp;;SPMamp;ESC B;SPMamp;;SPMamp;cur. one line down;SPMamp; ;SPMamp;C_RIGHT;SPMamp;;SPMamp;ESC C;SPMamp;;SPMamp;cur. one column right;SPMamp; ;SPMamp;C_LEFT;SPMamp;;SPMamp;ESC D;SPMamp;;SPMamp;cur. one column left;SPMamp; ;SPMamp;CLEAR_HOME;SPMamp;;SPMamp;ESC E;SPMamp;;SPMamp;clear screen, cur. home;SPMamp; ;SPMamp;HOME;SPMamp;;SPMamp;ESC H;SPMamp;;SPMamp;cur. home;SPMamp; ;SPMamp;SCROLL_UP;SPMamp;;SPMamp;ESC I;SPMamp;;SPMamp;cur. one line up (scroll);SPMamp; ;SPMamp;CLEAR_DOWN;SPMamp;;SPMamp;ESC J;SPMamp;;SPMamp;clear to end of screen;SPMamp; ;SPMamp;DEL_EOL;SPMamp;;SPMamp;ESC K;SPMamp;;SPMamp;clear until end of line;SPMamp; ;SPMamp;INS_LINE;SPMamp;;SPMamp;ESC L;SPMamp;;SPMamp;insert line;SPMamp; ;SPMamp;DEL_LINE;SPMamp;;SPMamp;ESC M;SPMamp;;SPMamp;delete line;SPMamp; ;SPMamp;CURS_LOC;SPMamp;;SPMamp;ESC Ycc;SPMamp;;SPMamp;set cur. to position;SPMamp; ;SPMamp;CHAR_COLOR;SPMamp;;SPMamp;ESC bc;SPMamp;;SPMamp;set char. color;SPMamp; ;SPMamp;BG_COLOR;SPMamp;;SPMamp;ESC cc;SPMamp;;SPMamp;set background color;SPMamp; ;SPMamp;C_ON;SPMamp;;SPMamp;ESC e;SPMamp;;SPMamp;switch cur. on;SPMamp; ;SPMamp;C_OFF;SPMamp;;SPMamp;ESC f;SPMamp;;SPMamp;switch cur. off;SPMamp; ;SPMamp;C_SAVE;SPMamp;;SPMamp;ESC j;SPMamp;;SPMamp;store cur. position;SPMamp; ;SPMamp;C_RESTORE;SPMamp;;SPMamp;ESC k;SPMamp;;SPMamp;restore cur. position;SPMamp; ;SPMamp;ERASE_L;SPMamp;;SPMamp;ESC l;SPMamp;;SPMamp;clear cur. line;SPMamp; ;SPMamp;DEL_BOL;SPMamp;;SPMamp;ESC o;SPMamp;;SPMamp;clear until beg. of line;SPMamp; ;SPMamp;REV_ON;SPMamp;;SPMamp;ESC p;SPMamp;;SPMamp;inverse on;SPMamp; ;SPMamp;REV_OFF;SPMamp;;SPMamp;ESC q;SPMamp;;SPMamp;inverse off;SPMamp; ;SPMamp;WRAP_ON;SPMamp;;SPMamp;ESC v;SPMamp;;SPMamp;automatic line wrap on;SPMamp; ;SPMamp;WRAP_OFF;SPMamp;;SPMamp;ESC w;SPMamp;;SPMamp;automatic line wrap off;SPMamp;

<#3749#>System Variables and Magic Numbers<#3749#>

<#3750#>#tex2html_accent_inline5748#<#3750#><#3752#>section<#3752#><#3753#>System Variables and Magic Numbers<#3753#><#3754#><#3754#>

#include sysvars.h;SPMgt;

<#2261#> <#2258#>#;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMnbsp;;SPMamp;# Name;SPMamp;Address<#1661#><#1661#> proc_lives;SPMamp;(unsigned long &sstarf#star;) 0x380 etv_timer;SPMamp;(void (&sstarf#star;&sstarf#star;)()) 0x400 etv_critic;SPMamp;(void (&sstarf#star;&sstarf#star;)()) 0x404 etv_term;SPMamp;(void (&sstarf#star;&sstarf#star;)()) 0x408 memvalid;SPMamp;(unsigned long &sstarf#star;) 0x420 mencntlr;SPMamp;(unsigned char &sstarf#star;) 0x424 resvalid;SPMamp;(unsigned long &sstarf#star;) 0x426 resvector;SPMamp;(void (&sstarf#star;&sstarf#star;)()) 0x42a phystop;SPMamp;(unsigned long &sstarf#star;) 0x42e _membot;SPMamp;(unsigned long &sstarf#star;) 0x432 _memtop;SPMamp;(unsigned long &sstarf#star;) 0x436 memval2;SPMamp;(unsigned long &sstarf#star;) 0x43a flock;SPMamp;(short &sstarf#star;) 0x43e seekrate;SPMamp;(short &sstarf#star;) 0x440 _timr_ms;SPMamp;(short &sstarf#star;) 0x442 _fverify;SPMamp;(short &sstarf#star;) 0x444 _bootdev;SPMamp;(short &sstarf#star;) 0x446 palmode;SPMamp;(short &sstarf#star;) 0x448 defshiftmd;SPMamp;(unsigned char &sstarf#star;) 0x44a sshiftmd;SPMamp;(short &sstarf#star;) 0x44c _v_bas_ad;SPMamp;(void &sstarf#star;) 0x44e vblsem;SPMamp;short &sstarf#star;) 0x452 nvbls;SPMamp;(short &sstarf#star;) 0x454 _vblqueue;SPMamp;(void (&sstarf#star;&sstarf#star;&sstarf#star;)()) 0x456 colorptr;SPMamp;(short &sstarf#star;&sstarf#star;) 0x45a _vbclock;SPMamp;(unsigned long &sstarf#star;) 0x462 _frclock;SPMamp;(unsigned long &sstarf#star;) 0x466 _hz_200;SPMamp;(unsigned long &sstarf#star;) 0x4ba conterm;SPMamp;&sstarf#star;((char &sstarf#star;) 0x484 savptr;SPMamp;(long &sstarf#star;) 0x4a2 _nflops;SPMamp;(short &sstarf#star;) 0x4A6 _sysbase;SPMamp;(long &sstarf#star;) 0x4f2 _shell_p;SPMamp;(long &sstarf#star;) 0x4f6 pun_ptr;SPMamp;(<#3755#>#tex2html_accent_inline5749#<#3755#> &sstarf#star;) 0x516 _p_cookies;SPMamp;(long &sstarf#star;&sstarf#star;) 0x5A0 <#1732#><#1732#> PROC_LIVES_MAGIC;SPMamp;0x12345678L MEMVALID_MAGIC;SPMamp;0x752019F3L MEMVAL2_MAGIC;SPMamp;0x237698AAL RESVALID_MAGIC;SPMamp;0x31415926L <#2258#><#2261#>

<#3756#>Error Numbers<#3756#>

<#3757#>#tex2html_accent_inline5750#<#3757#><#3759#>section<#3759#><#3760#>Error Numbers<#3760#><#3761#><#3761#>

#include errno.h;SPMgt;

<#2259#> <#2247#>#;SPMamp;#;SPMamp;# ENOERR;SPMamp;0;SPMamp;no error E_OK;SPMamp;ENOERR;SPMamp; EERROR;SPMamp;1;SPMamp;generic error EDRNRDY;SPMamp;2;SPMamp;drive not ready EDRVNR;SPMamp;EDRNRDY;SPMamp; EUKCMD;SPMamp;3;SPMamp;unknown command EUNCMD;SPMamp;EUKCMD;SPMamp; ECRC;SPMamp;4;SPMamp;crc error E_CRC;SPMamp;ECRC;SPMamp; EBADREQ;SPMamp;5;SPMamp;bad request ESEEK;SPMamp;6;SPMamp;seek error E_SEEK;SPMamp;ESEEK;SPMamp; EUKMEDIA;SPMamp;7;SPMamp;unknown media EMEDIA;SPMamp;EUKMEDIA;SPMamp; ESECTOR;SPMamp;8;SPMamp;sector not found ESECNF;SPMamp;ESECTOR;SPMamp; EPAPER;SPMamp;9;SPMamp;no paper EWRITE;SPMamp;10;SPMamp;write fault EWRITEF;SPMamp;EWRITE;SPMamp; EREAD;SPMamp;11;SPMamp;read fault EREADF;SPMamp;EREAD;SPMamp; EGENERIC;SPMamp;12;SPMamp;general mishap EROFS;SPMamp;13;SPMamp;write protect ECHMEDIA;SPMamp;14;SPMamp;media change E_CHNG;SPMamp;ECHMEDIA;SPMamp; EUKDEV;SPMamp;15;SPMamp;unknown device EUNDEV;SPMamp;EUKDEV;SPMamp; EBADSEC;SPMamp;16;SPMamp;bad sectors ENBADSF;SPMamp;EBADSEC;SPMamp; EIDISK;SPMamp;17;SPMamp;insert disk EOTHER;SPMamp;EIDISK;SPMamp;<#1835#><#1835#> EINVAL;SPMamp;32;SPMamp;invalid function number ENOENT;SPMamp;33;SPMamp;file not found ESRCH;SPMamp;ENOENT;SPMamp;pid not found EPATH;SPMamp;34;SPMamp;path not found EMFILE;SPMamp;35;SPMamp;too many open files EACCESS;SPMamp;36;SPMamp;access denied EACCES;SPMamp;36;SPMamp;access denied EPERM;SPMamp;EACCESS;SPMamp; EBADF;SPMamp;37;SPMamp;invalid handle ENOMEM;SPMamp;39;SPMamp;insufficient memory EFAULT;SPMamp;40;SPMamp;invalid memory block ;SPMamp;;SPMamp;request ENXIO;SPMamp;46;SPMamp;invalid drive EXDEV;SPMamp;48;SPMamp;cross device rename ENMFILES;SPMamp;49;SPMamp;no more files (Fnext)<#1881#><#1881#> ENMFIL;SPMamp;ENMFILES;SPMamp; ERANGE;SPMamp;62;SPMamp;range error EDOM;SPMamp;63;SPMamp;domain error EBADARG;SPMamp;64;SPMamp;range error ;SPMamp;;SPMamp;/context unknown EINTERNAL;SPMamp;65;SPMamp;internal error EINTRN;SPMamp;EINTERNAL;SPMamp; ENOEXEC;SPMamp;66;SPMamp;invalid program ;SPMamp;;SPMamp;load format EPLFMT;SPMamp;ENOEXEC;SPMamp; ESBLOCK;SPMamp;67;SPMamp;set block failed/ ;SPMamp;;SPMamp;growth restraints EGSBF;SPMamp;ESBLOCK;SPMamp; EEXIST;SPMamp;80;SPMamp;file exists (open) ENAMETOOLONG;SPMamp;81;SPMamp;file exists (open) ENOTTY;SPMamp;82;SPMamp;not a tty (ioctl) EAGAIN;SPMamp;EDRNRDY;SPMamp;try again later ENOTDIR;SPMamp;EPATH;SPMamp;&sstarf#star; preliminary &sstarf#star; <#2247#><#2259#>

fill2=

Copyright © 1992 Frank Ridderbusch
This multicolumn format was originally designed
by Stephen Gildea and modified to fit the Atari ST
library functions by Frank Ridderbusch

Permission is granted to make and distribute copies of this card provided the copyright notice and this permission notice are preserved on all copies.

ac ac sort-regexp-fields nil ;SPMquot;

function<#2262#>[A-Za-z_
~]+
s *[

]*
([A-Za-z_]+
)
([ -~]+
)+;SPMquot; ;SPMquot;
1;SPMquot; (region-beginning) (region-end));''